我想计算数据框中每一列的均值。 假设我有一个像这样的数据框:
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,而不是唯一值。
我该怎么做,我认为我应该编写一个函数,然后按条件应用于每个列,但是我不知道该怎么做。
希望有人可以帮助我。
答案 0 :(得分:2)
那是..一个奇怪的事情。 :-)我建议不要将其称为“平均”,这只会使人感到困惑。
最简单的方法可能是计算真实均值,然后用覆盖率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