Python 如何基于另一个布尔数组';s列值?
我试图根据第二个布尔数组(具有相同长度)的列的值,删除Pandas Dataframe的列 例如,假设熊猫数据帧Python 如何基于另一个布尔数组';s列值?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我试图根据第二个布尔数组(具有相同长度)的列的值,删除Pandas Dataframe的列 例如,假设熊猫数据帧 [value1, value2, value3] 和布尔数组 [True, False, True]. 数据帧上的删除操作的结果将是 [value1, value3] 请注意,我们删除了布尔数组中值为False的第二列 我想像这样的事情会很好: for i in range(len(boolean_array)): if boolean_array[i] == Fal
[value1, value2, value3]
和布尔数组
[True, False, True].
数据帧上的删除操作的结果将是
[value1, value3]
请注意,我们删除了布尔数组中值为False的第二列
我想像这样的事情会很好:
for i in range(len(boolean_array)):
if boolean_array[i] == False:
df = df.drop(df.columns[i], axis=1)
但是我很确定有一种更简单的方法。通过布尔掩码使用for filter columns by boolean mask:
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