[英]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.