答案 0 :(得分:0)
df.apply()在这里最好。
import pandas as pd
def funcx(x, test_str):
return test_str in x['bla']
tst = pd.DataFrame({'id': [0, 11, 222, 3333, 44444],
'bla': ['ab', 'ba', 'ca', 'bc', 'db']})
test = pd.Series(['a', 'b', 'c', 'd'])
result = {}
for xstring in test:
result[xstring] = tst.apply(funcx, args=( xstring), axis=1)
print result
给我们;
{'a': 0 True
1 True
2 True
3 False
4 False
dtype: bool, 'c': 0 False
1 False
2 True
3 True
4 False
dtype: bool, 'b': 0 True
1 True
2 False
3 True
4 True
dtype: bool, 'd': 0 False
1 False
2 False
3 False
4 True
dtype: bool}
然后可以用它来选择相关的行;
>>print tst[result['a']]
bla id
0 ab 0
1 ba 11
2 ca 222