我想从熊猫数据框中删除特定的行。通常,您可以使用类似的方法
df[df['some_column'] != 1234]
Run Code Online (Sandbox Code Playgroud)
什么df['some_column'] != 1234是创建索引新df的索引数组,因此仅显示具有值的行True。
但是在某些情况下(例如我的情况),我看不到如何以这种方式表达条件,并且遍历大熊猫行太慢而不能被认为是可行的选择。
更具体地说,我想删除所有行,其中列的值也是字典中的键,这与上面的示例类似。
在一个完美的世界里,我会考虑类似
df[df['some_column'] not in my_dict.keys()]
Run Code Online (Sandbox Code Playgroud)
这显然是行不通的。有什么建议么?
您正在寻找的是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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
385 次 |
| 最近记录: |