创建三行DataFrame之后:
import pandas as pd
df = pd.DataFrame({'a': ['1-2', '3-4', '5-6']})
我检查是否有任何单元格等于' 3-4':
df['a']=='3-4'
由于df['a']=='3-4'
命令生成pandas.core.series.Series
对象,我可以使用它来创建"过滤"原始DataFrame的版本如下:
filtered = df[ df['a']=='3-4' ]
在Python中,我可以使用以下方法检查另一个字符串中字符串字符的出现位置:
string_value = '3-4'
print('-' in string_value)
在使用DataFrames时,如何实现相同目标?
因此,我可以创建原始DataFrame的过滤版本 检查是否' - '每行中的字符,如:
filtered = df['-' in df['a']]
但上面的语法无效并抛出KeyError: False
错误消息。
答案 0 :(得分:8)
使用str
和contains
:
In [5]: df['a'].str.contains('-')
Out[5]:
0 True
1 True
2 True
Name: a, dtype: bool
答案 1 :(得分:0)
这是使用查询的方法:
In [4]: df.query('a.str.contains("1")')
Out[4]:
a
0 1-2
In [5]: df.query('a.str.contains("-")')
Out[5]:
a
0 1-2
1 3-4
2 5-6