我有一个pandas数据框,它有一列,并且每行都有一个值列表。我需要使用每行的相应值来计算平均值。那就是我需要列表中八个值的均值。列表中的每个元素都是变量的值
>>> df_ex
0 [1, 2, 3, 4, 5, 6, 7, 8]
1 [2, 3, 4, 5, 6, 7, 8, 1]
我尝试将其转换为numpy数组,然后采取措施,但我一直收到错误TypeError: unsupported operand type(s) for /: 'list' and 'int'
。我理解,我应该将其转换为列,而不是使用列表,但在我的上下文中将无法实现。关于如何实现这个目标的任何想法?
答案 0 :(得分:3)
您可以先转换为嵌套列表,然后转换为string
,然后计算mean
:
array
答案 1 :(得分:1)
您可以通过传递嵌套列表并指定轴来调用np.mean
。
设置
df_ex = pd.DataFrame(dict(
col1=[[1, 2, 3, 4, 5, 6, 7, 8],
[2, 3, 4, 5, 6, 7, 8, 1]]))
df_ex
col1
0 [1, 2, 3, 4, 5, 6, 7, 8]
1 [2, 3, 4, 5, 6, 7, 8, 1]
解决方案
np.mean(df_ex['col1'].tolist(), axis=1)
array([ 4.5, 4.5])
或者
np.mean(df_ex['col1'].tolist(), axis=0)
array([ 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 4.5])
答案 2 :(得分:0)
最简单的方法:
col.apply(np.mean)