In [393]: df
Out[393]:
A B C
0 apple banana pear
1 pear pear apple
2 banana pear pear
3 apple apple pear
In [394]: select_rows(df,['apple','banana'])
Out[394]:
A B C
0 apple banana pear
In [395]: select_rows(df,['apple','pear'])
Out[395]:
A B C
0 apple banana pear
1 pear pear apple
3 apple apple pear
In [396]: select_rows(df,['apple','banana','pear'])
Out[396]:
A B C
0 apple banana pear
In [59]:
df[df == 'banana'].dropna(how='all')
Out[59]:
A B C
1 NaN banana NaN
3 banana NaN NaN
要测试多个值,可以使用多个掩码:
In [90]:
banana = df[(df=='banana')].dropna(how='all')
banana
Out[90]:
A B C
1 NaN banana NaN
3 banana NaN NaN
In [91]:
apple = df[(df=='apple')].dropna(how='all')
apple
Out[91]:
A B C
1 apple NaN NaN
2 NaN NaN apple
4 apple apple NaN
您可以使用index.intersection仅索引公共索引值:
In [93]:
df.loc[apple.index.intersection(banana.index)]
Out[93]:
A B C
1 apple banana pear
对于单个搜索值
或者
对于多个搜索词:
或者
从Divakar:返回两个都有的行。
使用NumPy,它可以被矢量化来搜索任意多的字符串,就像-
样本运行-
您可以通过将整个df与字符串进行比较来创建布尔掩码,并调用
dropna
传递参数how='all'
来删除字符串未出现在所有列中的行:要测试多个值,可以使用多个掩码:
您可以使用
index.intersection
仅索引公共索引值:相关问题 更多 >
编程相关推荐