假设我们在Python Pandas中有一个数据框,如下所示:
df = pd.DataFrame({'vals': [1, 2, 3, 4], 'ids': [u'aball', u'bball', u'cnut', u'fball']})
或者,以表格形式:
ids    vals
aball   1
bball   2
cnut    3
fball   4
如何过滤包含关键词"ball?"的行?例如,输出应为:
ids    vals
aball   1
bball   2
fball   4
是否有任何功能相当于df.isin()和df[col].str.contains()?的组合?
例如,假设我有这个系列
 s = pd.Series(['cat','hat','dog','fog','pet']),并且我想找到s包含任何内容的所有地方['og', 'at'],我想要获得除了宠物之外的一切.
我有一个解决方案,但它相当不优雅:
searchfor = ['og', 'at']
found = [s.str.contains(x) for x in searchfor]
result = pd.DataFrame[found]
result.any()
有一个更好的方法吗?
我想看看我的数据帧中的特定列中是否存在特定字符串.
我收到了错误
ValueError:Series的真值是不明确的.使用a.empty,a.bool(),a.item(),a.any()或a.all().
import pandas as pd
BabyDataSet = [('Bob', 968), ('Jessica', 155), ('Mary', 77), ('John', 578), ('Mel', 973)]
a = pd.DataFrame(data=BabyDataSet, columns=['Names', 'Births'])
if a['Names'].str.contains('Mel'):
    print "Mel is there"