当前位置: 代码迷 >> python >> 如何按条件计算每列的均值
  详细解决方案

如何按条件计算每列的均值

热度:62   发布时间:2023-07-14 08:46:09.0

我想为数据框中的每一列计算均值。 假设我有一个像这样的数据框:

import pandas as pd

df = pd.DataFrame({'A':[1,2,3],
                   'B':[4,4,4],
                   'C':[7,8,9],
                   'D':[3,3,3]})
print(df)
   A  B  C  D  
0  1  4  7  3  
1  2  4  8  3  
2  3  4  9  3

我想把平均值设为[2,1,8,1]。 因为对于列B和D仅具有唯一值,所以我希望均值是1,而不是唯一值。

我该怎么做,我想我应该写一个函数,然后按条件应用于每列,但是我不知道该怎么做。

希望有人能帮助我。

那是..想要的一件奇怪的事。 :-)我建议不要将其称为“均值”,这只会使人感到困惑。

可能最简单的方法是计算实际均值,然后用覆盖率1替换唯一列。

In [226]: df.mean().where(df.nunique() > 1, 1)
Out[226]: 
A    2.0
B    1.0
C    8.0
D    1.0
dtype: float64
  相关解决方案