我有一個看起來像這樣的數據框: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() 將不起作用?;旧衔倚枰獢U展下面的代碼來計算數據幀中的所有平均值: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

慕慕森
TA貢獻1856條經驗 獲得超17個贊
使用
pd.DataFrame(df.value.tolist()).mean(1)
Out[541]:
0 2.000000
1 4.000000
2 5.333333
dtype: float64
添加回答
舉報
0/150
提交
取消