我有一个看起来像这样的数据框:
values
[0.0,12.34,223.12,4.55,...]
[0.0,78.12,12.90,...]
.
.
.
我正在尝试计算value列的平均值并将该数字存储在新列中。
数据框目前仅保存一列,而值列中每个数组的长度都不严格。
预期输出:
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])
答案 0 :(得分:5)
您有一系列列表。这意味着矢量化是不可能的。您可以通过pd.Series.map
(或等效地,apply
)和statistics.mean
使用Python级循环:
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
答案 1 :(得分:4)
使用
pos