我有以下名为 data_frame
的数据框:
a b c
0 [1, 2] [3, 4] [5, 6]
1 [7, 8] [9, 10] [11, 12]
2 [13, 14] [15, 16] [17, 18]
我想要做的是所有行中列表的元素均值。例如,结果数据应该是:
a b c
0 [(1 + 7 + 13) / 3, (2 + 8 + 14) / 3] [(3 + 9 + 15) / 3, (4 + 10 + 16) / 3] [(5 + 11 + 17) / 3, (6 + 12 + 18) / 3]
如果 pandas 中的每个元素都是单个值,则可以通过
data_frame.mean()
来完成。 .但是,如果pandas中的每个元素都是上面显示的列表,怎么办呢?
最佳答案
试试 stack()
然后获得级别 1 的平均值并聚合回列表/加入(您喜欢的任何内容):
s = df.stack()
pd.DataFrame(s.tolist(),index=s.index).mean(level=1).agg(list,1).to_frame().T
a b c
0 [7, 8] [9, 10] [11, 12]
关于python - 在pandas中,如何收集所有行的数据并将新数据合并为一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62209593/