0
我有一列用戶將在運行時提供的列。正因爲如此,名單可能會發生變化。大熊貓運行表達式以過濾列動態列名列
我想刪除一個DataFrame中的所有行,其列中的列值爲ALL。我如何在熊貓裏有效地做到這一點?最好的方法是簡單地迭代,還是有更多的「熊貓」方式來做到這一點?
我有一列用戶將在運行時提供的列。正因爲如此,名單可能會發生變化。大熊貓運行表達式以過濾列動態列名列
我想刪除一個DataFrame中的所有行,其列中的列值爲ALL。我如何在熊貓裏有效地做到這一點?最好的方法是簡單地迭代,還是有更多的「熊貓」方式來做到這一點?
我認爲你可以使用boolean indexing
與all
用於檢查所有True
值:
df = pd.DataFrame({'A':[1,2,3],
'B':[1,5,6],
'C':[1,8,9],
'D':[1,3,5],
'E':[5,3,6],
'F':[7,4,3]})
print (df)
A B C D E F
0 1 1 1 1 5 7
1 2 5 8 3 3 4
2 3 6 9 5 6 3
cols = ['A','B','C']
val = 1
print (df[cols] == val)
A B C
0 True True True
1 False False False
2 False False False
mask = ~(df[cols] == val).all(axis=1)
print (mask)
0 False
1 True
2 True
dtype: bool
print (df[mask])
A B C D E F
1 2 5 8 3 3 4
2 3 6 9 5 6 3
啊,聰明!這正是我需要的東西。謝謝! – X33