如何基于另一个布尔数组的列值删除数据帧列?

2024-03-28 11:30:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图根据第二个布尔数组(具有相同长度)的列的值删除数据帧的列。你知道吗

例如,假设熊猫数据帧

[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)

但我很确定有一个更简单的方法。你知道吗


Tags: 数据infalsetruepandasdffor数组
1条回答
网友
1楼 · 发布于 2024-03-28 11:30:02

使用^{}^{}按布尔掩码筛选列:

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

相关问题 更多 >