我想要计算数据帧中每一列的平均值。假设我有一个这样的数据帧:
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,而不是那个唯一的值。
我应该怎么做,我想我应该写一个函数,然后按条件应用于每一列,但我不知道怎么做。
希望有任何人能帮助我。
发布于 2018-09-15 16:49:32
那是..。想要一件奇怪的事情。:-)我建议不要把它称为“手段”,那只会让人们感到困惑。
可能最简单的做法是计算实际平均值,然后用覆盖值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
https://stackoverflow.com/questions/52346695
复制