以下 DataFrame (df) 有 3 列:Event
、Counts
和 Length
,其中 Counts
列包含一系列数字。我想估计每个 Counts
行的平均值并将其显示在第四行上。
df =
Event Counts Length
0 [111240.0, 110530.0, 108540.0, 108540.0, 10838... 5
7 [117240.0, 119160.0, 120160.0, 121950.0, 12195... 6
13 [180420.0, 180420.0, 183840.0, 183840.0, 18384... 6
16 [160260.0, 159430.0, 159430.0, 157720.0, 15955... 14
我测试了以下表达式,但没有成功。
df['mean'] = df['counts'].mean(axis = 1)
以及基于此行的其他变体。
如果我理解正确的话,问题是由于 Count
列包含多个元素这一事实造成的。
感谢您对这个看似简单的问题的帮助。
最佳答案
假设它们的长度相同,您可以使用 Numpy
df['Mean'] = np.mean(df['Counts'].tolist(), axis=1)
df
Event Counts Length Mean
0 0 [111240.0, 110530.0, 108540.0, 108540.0, 10838] 5 89937.6
1 7 [117240.0, 119160.0, 120160.0, 121950.0, 12195] 6 98141.0
2 13 [180420.0, 180420.0, 183840.0, 183840.0, 18384] 6 149380.8
3 16 [160260.0, 159430.0, 159430.0, 157720.0, 15955] 14 130559.0
否则
df['Mean'] = df['Counts'].apply(np.mean)
df
Event Counts Length Mean
0 0 [111240.0, 110530.0, 108540.0, 108540.0, 10838] 5 89937.6
1 7 [117240.0, 119160.0, 120160.0, 121950.0, 12195] 6 98141.0
2 13 [180420.0, 180420.0, 183840.0, 183840.0, 18384] 6 149380.8
3 16 [160260.0, 159430.0, 159430.0, 157720.0, 15955] 14 130559.0
关于python - DataFrame 中包含的序列的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48871018/