簡體   English   中英

pandas df select 列基於單元格值

[英]pandas df select columns based on cell values

我有一個 pandas dataframe 並想刪除第一行不是True的所有列。 我怎樣才能做到這一點? 因此,例如,如果我有這個 df,我想取回y列。 我不想輸入任何列名。

df = pd.DataFrame({'x':[False, True, False, True], 'y':[True, False, True, True], 'z':[False, False,False,False]})

您也可以使用循環(最好是列表理解)來就地執行它。 因此,您無需將生成的 dataframe 分配給新變量。 請看下面的例子。

假設您有以下 pandas dataframe。

import pandas as pd
df = pd.DataFrame({"a": [True, False, True],
                   "b": [False, False, True],
                   "c": [True, True, True]})

您下面的循環刪除了 b 列。

[df.drop([col], axis=1, inplace=True) 
for col in df.columns 
if df[col].loc[0] == False]

通常,我們使用“is”來檢查布爾條件。 但是,這里使用雙等號的好處是可以同時與 bool 和 numpy.bool 一起正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM