根据某些条件删除列

时间:2018-12-06 19:48:51

标签: python python-3.x pandas

例如,我有一个名为dat的数据框,那么我想在该数据框的每一列上应用一个函数,如果返回值为Ture,则保留此列并转到下一个列,如果返回值为False ,然后放下此列并转到下一列。

我知道我可以编写一个for循环来执行此操作,但是有有效的方法吗?

1 个答案:

答案 0 :(得分:0)

您可以在df.columns上使用布尔索引来做到这一点:

为简化起见,我想删除所有'sum'大于50的列

df = pd.DataFrame({'A':[2,4,6,8],'B':[101,102,102,102]})

r = df.apply(np.sum) # applies the sum function to all columns

c = r <= 50 #create boolean test for columns

df[c[c].index] #Use boolea indexing to get columns and column filter for dataframe

输出:

   A
0  2
1  4
2  6
3  8
相关问题