如何 pandas 数据框中的 select 列的平均值大于某个限制?

How do I select columns from pandas dataframe that have an average value greater than some limit?

我有一个包含多列的数据框。每列都是一些变量的时间序列。我只想选择重要的列(按某些指标),即我想选择列的子集,s.t。对于每一列,

  1. 平均值(所有行)大于 x,或者
  2. 最大值(所有行)大于 x

    我 | col1 | col2 | col3 | ....

    0 | 0.1 | 0.5。 | 0.3。 | ....

    1 | .09 | 0.4 | 0.4 | ....

    2 | .08 | .45 | .36 | ...

比方说,从上面的 table 中,我只想选择 [col2, col3] (条件: column_avg > 0.2 )。

或者,只有 col2,条件是:column_avg>.4。

同样,不是以平均为条件,而是以每列的最小值或最大值为条件

如果你想让每一列的平均值都超过 .4:

means = df.mean()
x = .4
useful_cols = [ind for m,ind in zip(means,means.index) if m>x]
df2 = df[useful_cols]

使用 maxdf.mean() 替换为 df.max()

如果这里有什么需要解释的,请告诉我。

试试这个:

df2 = df[df.columns[df.mean(axis=0) > 0.2]]
df3 = df[df.columns[df.max(axis=0) > 0.4]]

df.min 以同样的方式工作。