python - 在 pandas 列上应用条件以创建 bool 索引数组

标签 python pandas

我想从 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/

相关文章:

python - 打开输入和输出文件时顺序重要吗?

python - 从 pandas 中的日期明智列数据框架创建周明智数据框架

python - Sqlalchemy 加载实例事件未触发

Python:仅将最新的登录信息保存到文件中

python - seaborn 热图颜色图

python - 如何从数据帧的子集中随机选择元素?

python - 在 Python 中使用 if 条件加速逐行循环

python - 如何应用于具有多索引列的数据框中的一组列

javascript - python 中的热图

Python:用不同的术语替换字符串中的嵌入函数