在创建三行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
错误消息。
发布于 2016-09-03 03:48:56
使用str
和contains
In [5]: df['a'].str.contains('-')
Out[5]:
0 True
1 True
2 True
Name: a, dtype: bool
发布于 2019-12-05 17:57:23
以下是如何使用query执行此操作:
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
https://stackoverflow.com/questions/39299703
复制相似问题