我有一个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()
但是每一行都有效。谢谢你的帮助。
答案 0 :(得分:4)
您可以使用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