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

alp*_*ric 4 python dataframe pandas

创建三行DataFrame后:

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

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

df['a']=='3-4'
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

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

filtered = df[ df['a']=='3-4' ]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在Python中,我可以使用以下命令检查另一个字符串中字符串字符的出现:

string_value = '3-4'
print('-' in string_value)
Run Code Online (Sandbox Code Playgroud)

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

所以,我可以通过检查每行的单元格中是否有" - "字符来创建原始DataFrame的过滤版本,例如:

filtered = df['-' in df['a']]
Run Code Online (Sandbox Code Playgroud)

但是上面的这个语法无效并抛出KeyError: False错误消息.

jua*_*aga 10

使用strcontains:

In [5]: df['a'].str.contains('-')
Out[5]: 
0    True
1    True
2    True
Name: a, dtype: bool
Run Code Online (Sandbox Code Playgroud)