Filter Pandas DataFrame for elements in list
本问题已经有最佳答案,请猛点这里访问。
我有一个包含值和附加信息的熊猫数据帧。我希望能够提取只属于一种信息的值。我不知道前面会查询哪些值以及多少值。因此,可能只调用一次带有附加信息"foo"的值,有时使用附加信息"bar"和"baz",因此使用简化的数据帧
1 2 3 | import pandas as pd df = pd.DataFrame( [[1, 'foo'], [2, 'bar'], [3, 'baz']], columns=['value', 'id']) |
我试过了
1 | result = df[df.id in ['foo', 'bar']] |
号
但我只得到一个值错误:一个序列的真值是模糊的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。但是我不能让any()-函数给我结果….
使用
1 2 3 4 5 6 7 | In [30]: df[df['id'].isin(['foo','bar'])] Out[30]: value id 0 1 foo 1 2 bar |
这里,
1 2 3 4 5 6 7 8 | In [31]: df['id'].isin(['foo','bar']) Out[31]: 0 True 1 True 2 False Name: id, dtype: bool |
号