如何使用Python实现两个DataFrame的对角线合并
pandas 对角线偏移拼接实现方法
核心逻辑是将右表的匹配索引整体向后偏移1位,再和左表按索引做外连接,即可得到你需要的拼接效果。
代码实现
首先导入依赖:
import pandas as pd
方法1:使用join按索引拼接
# 请替换为你自己的左表、右表数据 df_left = pd.DataFrame({'col1': [1,2,3,4], 'col2': ['x','y','z','w']}) df_right = pd.DataFrame({'col3': [5,6,7], 'col4': ['a','b','c']}) # 给右表设置偏移索引,从1开始和左表第二行对齐 df_right.index = range(1, len(df_right) + 1) # 外连接合并,保留所有行 result = df_left.join(df_right, how='outer') # 可选:重置索引去掉原有索引标记 result = result.reset_index(drop=True)
方法2:使用merge自定义拼接键实现
如果更习惯用merge方法,可以手动构造偏移后的拼接键:
df_left['merge_key'] = df_left.index df_right['merge_key'] = df_right.index + 1 result = pd.merge(df_left, df_right, on='merge_key', how='outer').drop('merge_key', axis=1)
上述两种方法得到的结果完全一致,都可以实现你需要的第一行右表列为空、后续行逐行对齐的对角线拼接效果。
内容的提问来源于stack exchange,提问作者furquimmm
相关产品推荐
相关产品推荐

