我有一个 Dataframe (df),它有三列(user、vector和group name),vector列的每行有多个逗号分隔的值。
df = pd.DataFrame({'user': ['user_1', 'user_2', 'user_3', 'user_4', 'user_5', 'user_6'], 'vector': [[1, 0, 2, 0], [1, 8, 0, 2],[6, 2, 0, 0], [5, 0, 2, 2], [3, 8, 0, 0],[6, 0, 0, 2]], 'group': ['A', 'B', 'C', 'B', 'A', 'A']})
我想计算每个组的所有行中的尺寸总和除以该组的总行数。
例如:对于群,A是[(1+3+6)/3, (0+8+0)/3, (2+0+0)/3, (0+0+2)/3] = [3.3, 2.6, 0.6, 0.6]
。
对于组,B为[(1+5)/2, (8+0)/2, (0+2)/2, (2+2)/2] = [3,4,1,2].
对于组,C为[6, 2, 0, 0]
因此,预期结果是一个数组:
group A: [3.3, 2.6, 0.6, 0.6]
group B: [3,4,1,2]
group C: [6, 2, 0, 0]
2条答案
按热度按时间yeotifhr1#
我不确定您是在寻找存储在单个数组/ Dataframe 中的结果,还是只是在寻找作为单独数组的结果。
如果是后者,应该可以使用以下方法:
输出量:
这是一个有点笨重,但得到的工作完成,如果你只是想得到的结果。
基于组过滤 Dataframe ,然后将其向量转换为自己的tmp_df,并获取每列的平均值。
如果你愿意,你可以很容易地把这些数组,并保存他们为进一步的操作或什么你有。
希望这对你有帮助!
goqiplq22#
充分利用numpy:
输出量:
作为 Dataframe
输出量:
作为数组
输出量: