讓我們以這個示例資料幀為例:
df = pd.DataFrame({'ID':[1,2,3],'Col1':[True,False,False],'Col2':[False,False,False], 'Col3':[True,False,True]})
ID Col1 Col2 Col3
0 1 True False True
1 2 False False False
2 3 False False True
我想選擇至少有一個 True 的 df 行。我當然可以做到以下幾點:
df[df["Col1"] | df["Col2"] | df["Col3"]]
但是我的真實資料框有很多列,我不知道它們的名字。請問我該怎么辦?
預期輸出:
ID Col1 Col2 Col3
0 1 True False True
2 3 False False True
uj5u.com熱心網友回復:
有any用于確切目的的功能:
df = df.set_index('ID', drop=True)
print(df[df.any(axis='columns')]
# output:
Col1 Col2 Col3
ID
1 True False True
3 False False True
或不重置索引:
print(df[df[['Col1', 'Col2', 'Col3']].any(axis='columns')])
# output:
ID Col1 Col2 Col3
0 1 True False True
2 3 False False True
uj5u.com熱心網友回復:
你可以使用.select_dtypes布爾過濾.loc
df.loc[df.select_dtypes('bool').sum(axis=1).ge(1)]
ID Col1 Col2 Col3
0 1 True False True
2 3 False False True
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360272.html
上一篇:如何按組和條件用值填充NA
