use*_*803 5 python arrays numpy pandas
我有一个带有数组的数据框。例:
df = pd.DataFrame([('a', [1,2,3]), ('b', [4,5,6])], columns=['name', 'values'])
name values
0 a [1, 2, 3]
1 b [4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
我知道valuescol数组的长度相同。我想计算value数组的axis = 0上的平均值。在numpy中,我可以这样做:
np.array([[1,2,3], [4,5,6]]).mean(axis=0) # result: array([2.5, 3.5, 4.5])
Run Code Online (Sandbox Code Playgroud)
大熊猫有可能吗?
如果没有,我如何轻松将值col转换为numpy数组?我已经尝试过了df['values'].values,但这没有给出一个矩阵:
array([list([1, 2, 3]), list([4, 5, 6])], dtype=object)
Run Code Online (Sandbox Code Playgroud)
使用 pandas series.tolist 将 pandas 系列转换为列表
np.array(df['values'].tolist()).mean(axis = 0)
#o/p
array([2.5, 3.5, 4.5])
Run Code Online (Sandbox Code Playgroud)