我想从 pandas 数据框中删除特定行。通常你可以使用类似的东西来做到这一点
df[df['some_column'] != 1234]
df['some_column'] != 1234
所做的是创建一个索引数组来索引新的 df,因此只允许具有值 True
的行出现.
但在某些情况下,就像我的情况一样,我不知道如何以这种方式表达条件,并且迭代 pandas 行太慢而不能被视为可行的选择。
更具体地说,我想以与上述示例类似的方式删除列值也是字典中键的所有行。
在一个完美的世界里,我会考虑像这样的东西
df[df['some_column'] not in my_dict.keys()]
这显然是行不通的。有什么建议吗?
最佳答案
你要找的是isin()
import pandas as pd
df = pd.DataFrame([[1, 2], [1, 3], [4, 6],[5,7],[8,9]], columns=['A', 'B'])
In[9]: df
Out[9]: df
A B
0 1 2
1 1 3
2 4 6
3 5 7
4 8 9
mydict = {1:'A',8:'B'}
df[df['A'].isin(mydict.keys())]
Out[11]:
A B
0 1 2
1 1 3
4 8 9
关于python - 在 pandas 列上应用条件以创建 bool 索引数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38729550/