【发布时间】:2016-02-24 09:19:34
【问题描述】:
我有一个 pandas 数据框 df,我想删除平均值大于 10 且小于 2 的列。如何在没有循环的情况下做到这一点?
我试过这个没有循环
df=df.drop(df.mean(axis=1)>10 and df.mean(axis=1)<2)
【问题讨论】:
我有一个 pandas 数据框 df,我想删除平均值大于 10 且小于 2 的列。如何在没有循环的情况下做到这一点?
我试过这个没有循环
df=df.drop(df.mean(axis=1)>10 and df.mean(axis=1)<2)
【问题讨论】:
你不能使用drop,但是你可以索引……你还需要使用&而不是and:
m = df.mean(axis=1) # calculate once
df = df.loc[:, (m>10) & (m<2)]
【讨论】:
df = df.loc[:, (m>10) & (m<2)]。我认为您对轴的看法是正确的,我只是使用了您的 .mean 方法而没有阅读它。