python - 如何添加两个 pandas 数据框并保留两个索引

标签 python python-3.x pandas dataframe vector

添加两个 pandas 数据框并保留两个索引的最优雅、最有效的方法是什么?

表1

<表类=“s-表”> <标题> 索引 第 1 列 Col2 <正文> 示例1 0.5 1.0 示例2 0.0 0.5

表2

<表类=“s-表”> <标题> 索引 第 1 列 Col2 <正文> 示例3 0.0 1.0 示例4 1.0 1.0

结果表

<表类=“s-表”> <标题> 索引 第 1 列 Col2 <正文> [样本1,样本3] 0.5 2.0 [样本2,样本4] 1.0 1.5
import pandas as pd
table_one = pd.DataFrame({'Col1': [0.5, 1.0],
                          'Col2': [0.0, 0.5]},
                          index=['Sample1', 'Sample2'])
table_two = pd.DataFrame({'Col1': [0.0, 1.0],
                          'Col2': [1.0, 1.0]},
                          index=['Sample3', 'Sample4'])
table_result = pd.DataFrame({'Col1': [0.5, 2.0],
                          'Col2': [1.0, 1.5]},
                          index=[['Sample1','Sample3'], ['Sample2','Sample4']])
# Please insert solution here...

最佳答案

我会使用:

out = table_one.add(table_two.set_axis(table_one.index))
out.index = zip(table_one.index, table_two.index)

泛化到任意数量的表:

from functools import reduce

tables = [table_one, table_two]
idx = list(zip(*(d.index for d in tables)))
out = reduce(lambda a, b: a.add(b), (d.set_axis(idx) for d in tables))

输出:

                    Col1  Col2
(Sample1, Sample3)   0.5   1.0
(Sample2, Sample4)   2.0   1.5

关于python - 如何添加两个 pandas 数据框并保留两个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76729370/

相关文章:

Python 跳转 while 循环

python - 如何解析来自 Python SDK 的嵌套 FB API 响应

python-3.x - 在 odoo12 中将采购订单中的自定义字段发送到收据(库存)

python - 如何解决 lambda 函数中的内部导入

python - 写入文件错误和权限错误

python - 使用 talib、python 和 pandas 的滚动每周技术指标。

带有 paramiko 的 Python CGI

python - Django 检查用户何时创建

python - 将具有重复索引的系列数据附加到 pandas 数据框列

python - 重命名 Pandas 系列中的索引?