我想删除所有不在 pandas DataFrame 列表中的行
例如,考虑这个数据框:
data = {'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'year': [2012, 2012, 2013, 2014, 2014],
'reports': [4, 24, 31, 2, 3]}
df = pd.DataFrame(data, index = ['Cochice', 'Pima', 'Santa Cruz', 'Maricopa', 'Yuma'])
df
按名称删除一行很简单:
df = df[df.name != 'Tina'] # to drop the row which include Tina in the name column
但是如果我只想保留 Jason 和 Molly 这一行:
List=['Jason', 'Molly']
df = df[df.name not in List]
不起作用!
最佳答案
使用isin
并将列表作为 arg 传递并使用 ~
反转条件:
In [58]:
names = ['Jason', 'Molly']
df[~df['name'].isin(names)]
Out[58]:
name reports year
Santa Cruz Tina 31 2013
Maricopa Jake 2 2014
Yuma Amy 3 2014
关于python - 使用参数列表删除行 Pandas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37609743/