我列出了可能出现在三列中的任何三列的术语。我想在三列中的某处找到所有包含所有三个术语的行。
我有一个看起来像这样的数据框:
In [1]: data = [
['Missouri','Kansas City','Jackson County'],
['Boston','Massachusetts','Suffolk County'],
['Los Angeles','Los Angeles County','California'],
['Massachusetts','Suffolk County','Boston'],
['Philadelphia','Pennsylvania','Philadelphia County'],
['Kansas City','Missouri','Jackson County'],
['Kansas City','Missouri','Platte County']
]
In [2]: columns=['location0','location1','location2']
In [3]: df = pd.DataFrame(data,columns=columns)
In [4]: df
Out[4]:
location0 location1 location2
0 Missouri Kansas City Jackson County
1 Boston Massachusetts Suffolk County
2 Los Angeles Los Angeles County California
3 Massachusetts Suffolk County Boston
4 Philadelphia Pennsylvania Philadelphia County
5 Kansas City Missouri Jackson County
6 Kansas City Missouri Platte County
我想获得描述密苏里州杰克逊县堪萨斯城的数据框的所有行。
换句话说,我希望所有这三项均位于所有行中:['Kansas City','Jackson County','Missori']位于以下三列中的任何一列:['location0','location1','location2' ]:
结果将如下所示:
location0 location1 location2
0 Missouri Kansas City Jackson County
1 Kansas City Missouri Jackson County
In [1]: look_for = ['Kansas City','Jackson County','Missouri']
In [2]: look_in = ['location0','location1','location2']
In [3]: result = df[col for col in look_in if df[col].isin(look_for)]
In [4]: result
Out [4]:
File "<ipython-input-408-c42b1236af99>", line 3
result = df[col for col in look_in if df[col].isin(look_for)]
^
SyntaxError: invalid syntax
在此先感谢您的帮助!
编辑:输入错误look_for
DataFrame.isin
通过过滤后的值在过滤后的列中使用,并为True
每行测试添加DataFrame.all
:
result = df[df[look_in].isin(look_for).all(axis=1)]
print (result)
location0 location1 location2
0 Missouri Kansas City Jackson County
5 Kansas City Missouri Jackson County
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句