为了账号安全,请及时绑定邮箱和手机立即绑定

DataFrame 中系列的平均值

DataFrame 中系列的平均值

呼唤远方 2021-09-02 15:07:34
我有一个看起来像这样的数据框:values[0.0,12.34,223.12,4.55,...][0.0,78.12,12.90,...]... 我正在尝试计算值列的平均值并将该数字存储在新列中。数据框目前只包含一列,值列中每个数组的长度并不严格。预期输出:value                             average[0.0,12.34,223.12,4.55,...]        77.87[0.0,78.12,12.90,...]              12.11            ... 当我尝试使用 iterrows() 遍历数据帧时,Np.mean() 将不起作用。基本上我需要扩展下面的代码来计算数据帧中的所有平均值:np.mean(df_average_pace.paces[0])
查看完整描述

2 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

您有一系列列表。这意味着矢量化是不可能的。您可以通过pd.Series.map(或等效地,apply)和使用 Python 级循环statistics.mean:


from statistics import mean

df['average'] = df['value'].map(mean)

这是一个演示:


from statistics import mean

df = pd.DataFrame({'value': [[1, 4, 1, 2], [2, 4, 6], [9, 2, 5]]})

df['average'] = df['value'].map(mean)


print(df)


          value   average

0  [1, 4, 1, 2]  2.000000

1     [2, 4, 6]  4.000000

2     [9, 2, 5]  5.333333


查看完整回答
反对 回复 2021-09-02
?
慕慕森

TA贡献1856条经验 获得超17个赞

使用


pd.DataFrame(df.value.tolist()).mean(1)

Out[541]: 

0    2.000000

1    4.000000

2    5.333333

dtype: float64


查看完整回答
反对 回复 2021-09-02
  • 2 回答
  • 0 关注
  • 530 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信