如何解决过滤数据框中的行
我在dataframe列中存储了一个字符串
import pandas as pd
df = pd.DataFrame({"ID": 1,"content": "froyay-xcd = (E)-cut-2-froyay-xcd"},index=[0])
print(df)
idx = df[df['content'].str.contains("froyay-xcd = (E)-cut-2-froyay-xcd")]
print(idx)
我正在尝试查找包含搜索字符串的行的索引,并且发生以下警告
UserWarning: This pattern has match groups. To actually get the groups,use str.extract.
return func(self,*args,**kwargs)
我不确定在数据框列中实际存在搜索字符串时为什么会返回空数据框。
任何建议将不胜感激。我希望输出返回存储在数据框中的行。
解决方法
您可以添加regex=False
参数,以避免将值转换为正则表达式,此处()
是特殊的正则表达式字符:
idx = df[df['content'].str.contains("froyay-xcd = (E)-cut-2-froyay-xcd",regex=False)]
print(idx)
ID content
0 1 froyay-xcd = (E)-cut-2-froyay-xcd
或者您可以通过以下方式转义正则表达式:
import re
idx = df[df['content'].str.contains(re.escape("froyay-xcd = (E)-cut-2-froyay-xcd"))]
print(idx)
ID content
0 1 froyay-xcd = (E)-cut-2-froyay-xcd
,
您可以在\
和(
之前添加)
来避免它,然后使用.index
df.content.str.contains("froyay-xcd = \(E\)-cut-2-froyay-xcd").index
Int64Index([0],dtype='int64')
如果您有更多的正则表达式特殊字符,最好使用@jezrael所说的regex=False
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。