pandas:计算每一行中numpy数组在某一列中的平均值

5
我有一个pandas数据帧,df,其中每行包含大小不同的numpy数组的列,例如:
   column A 
0  np.array([1,2,3])
1  np.array([1,2,3,4])
2  np.array([1,2])

有没有内置的 pandas 函数可以返回每个数组(即行)在整个列中的平均值?类似这样:

df.A.mean()

但是这个操作会分别作用于每一行。感谢任何帮助。
1个回答

8
您可以使用 df.<column>.map 将函数应用于列中的每个元素:
df = pd.DataFrame({'a': 
    [np.array([1, 2, 3]), 
     np.array([4, 5, 6, 7]), 
     np.array([7, 8])]
})

df
Out[8]: 
              a
0     [1, 2, 3]
1  [4, 5, 6, 7]
2        [7, 8]

df['a'].map(lambda x: x.mean())
Out[9]: 
0    2.0
1    5.5
2    7.5
Name: a, dtype: float64

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接