簡體   English   中英

如何根據另一個布爾數組的列值刪除 Pandas 數據框列?

[英]How to drop Pandas dataframe columns based on another boolean array's column values?

我試圖根據第二個布爾數組(具有相同長度)的列的值刪除 Pandas Dataframe的列

例如假設熊貓數據框

[value1, value2, value3]

和一個布爾數組

[True, False, True].

對 Pandas 數據幀進行刪除操作的結果將是

[value1, value3] 

請注意,我們刪除了布爾數組中值為 False 的第二列。

我想這樣的事情會正常工作:

for i in range(len(boolean_array)):
    if boolean_array[i] == False:
        df = df.drop(df.columns[i], axis=1)

但我很確定有一種更簡單的方法。

使用帶有DataFrame.loc boolean indexing通過布爾掩碼過濾列:

df = pd.DataFrame({'value1':[1,2],
                   'value2':[10,20],
                   'value3':[100,200]})

arr = np.array([True, False, True])

df1 = df.loc[:, arr]
print (df1)
   value1  value3
0       1     100
1       2     200

暫無
暫無

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

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