python - 在pandas中,如何收集所有行的数据并将新数据合并为一行?

标签 python pandas list

我有以下名为 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/

相关文章:

python - python中终止while循环的函数?

python - 从命令提示符激活虚拟环境返回 "The system cannot find the path specified"但无论如何激活 Venv?

pandas - 加权平均 Pandas

python - 将多个文件中的数据检索到多个数据帧中

python - 如何定义一组变量,以便程序响应列表中的任何项目被调用,python3

python - 检查单词的第一个字母是否是元音

python - 子集 Pandas 数据框并保留原始大小

Python 列表列表无循环

java - 将字符串变量转换为列表 [Groovy]

Python: Mechanize 错误仅在从文本编辑器运行代码时显示,但在直接从空闲 shell 运行时工作正常