如何从pandas数据框中选择平均值大于某些限制的列?

时间:2019-08-19 20:40:09

标签: python pandas columnsorting

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

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

    i | col1 | col2 | col3 | ....

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

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

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

让我们说,从上表开始,我只选择[col2,col3](条件:column_avg> 0.2)。

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

类似地,不是以平均值为条件,而是以每列的最小值或最大值为条件

2 个答案:

答案 0 :(得分:2)

如果您希望获得每列均值超过.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()

请告诉我这里是否需要解释。

答案 1 :(得分:2)

尝试一下:

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

df.min的工作方式相同。