首页 > 解决方案 > 有没有办法逐步计算列的数据框的平均值?

问题描述

有没有办法逐步计算 df 列的平均值。例如,我有一个名为 data 的 df,有 50 行,我想创建一个图,显示 y 轴上的平均值和 x 轴上的样本数。所以我需要知道我列中第一个值的平均值,然后是我列中前两个值的平均值,依此类推。试图用 lamda 表达式来做,但失败了。

任何人的想法?

标签: pythonarrayspandaslambdastatistics

解决方案


IIUC,您可以使用expandingmean累计计算平均值:

例子

data = pd.DataFrame({'col1': np.arange(1, 50)})

data['cumulative_mean'] = data['col1'].expanding().mean()

[出去]

    col1  cumulative_mean
0      1              1.0
1      2              1.5
2      3              2.0
3      4              2.5
4      5              3.0
..   ...              ...
44    45             23.0
45    46             23.5
46    47             24.0
47    48             24.5
48    49             25.0

[49 rows x 2 columns]

要绘图,您可以使用:

data.index += 1
data['cumulative_mean'].plot()

在此处输入图像描述


推荐阅读