如何将两个行列结构一致的DataFrame转换为元素为元组的DataFrame
实现方案
直接使用pandas内置的DataFrame.combine()方法即可实现,无需手动遍历,完美适配多列、大表场景:
import pandas as pd # 示例输入 df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [10, 20, 30]}) df2 = pd.DataFrame({'A': [11, 22, 33], 'B': [110, 220, 330]}) # 核心逻辑,所有列自动合并 df_combined = df1.combine(df2, lambda s1, s2: list(zip(s1, s2)))
输出的df_combined就是需要的结果:
A B 0 (1, 11) (10, 110) 1 (2, 22) (20, 220) 2 (3, 33) (30, 330)
方案优势
- 完全基于pandas原生方法实现,没有自定义循环逻辑,执行效率远高于遍历方案
- 自动对齐两个DataFrame的索引和列名,不需要提前保证两表的行、列顺序完全一致
- 代码简洁,列数再多也不需要修改核心逻辑
内容的提问来源于stack exchange,提问作者cookiemonster
相关产品推荐
相关产品推荐

