我有一个包含多列的数据框。每列都是某个变量的时间序列。我只想选择重要的列(按某种度量),即我想选择列的子集,即对于每一列,
最大值(在所有行中)都大于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。
类似地,不是以平均值为条件,而是以每列的最小值或最大值为条件
答案 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]
使用max
将df.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
的工作方式相同。