如何检查DataFrame单元格中是否存在字符

时间:2016-09-02 19:44:12

标签: python pandas dataframe

创建三行DataFrame之后:

import pandas as pd
df = pd.DataFrame({'a': ['1-2', '3-4', '5-6']})

我检查是否有任何单元格等于' 3-4':

df['a']=='3-4'

enter image description here

由于df['a']=='3-4'命令生成pandas.core.series.Series对象,我可以使用它来创建"过滤"原始DataFrame的版本如下:

filtered = df[ df['a']=='3-4' ]

enter image description here

在Python中,我可以使用以下方法检查另一个字符串中字符串字符的出现位置:

string_value = '3-4'
print('-' in string_value)

在使用DataFrames时,如何实现相同目标?

因此,我可以创建原始DataFrame的过滤版本 检查是否' - '每行中的字符,如:

filtered = df['-' in df['a']]

但上面的语法无效并抛出KeyError: False错误消息。

2 个答案:

答案 0 :(得分:8)

使用strcontains

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