如何 pandas 数据框中的 select 列的平均值大于某个限制?
How do I select columns from pandas dataframe that have an average value greater than some limit?
我有一个包含多列的数据框。每列都是一些变量的时间序列。我只想选择重要的列(按某些指标),即我想选择列的子集,s.t。对于每一列,
- 平均值(所有行)大于 x,或者
最大值(所有行)大于 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]
使用 max
将 df.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
以同样的方式工作。
我有一个包含多列的数据框。每列都是一些变量的时间序列。我只想选择重要的列(按某些指标),即我想选择列的子集,s.t。对于每一列,
- 平均值(所有行)大于 x,或者
最大值(所有行)大于 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]
使用 max
将 df.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
以同样的方式工作。