如何使用Python/Pandas合并两个数据集并生成指定格式结果?
合并两个Pandas数据集并保留所有记录
先把你的两个数据集用代码还原出来:
import pandas as pd df1 = pd.DataFrame({ 'Name': ['Michael', 'Peter'], 'A': [1, 3], 'B': [2, 4] }, index=[1, 2]) df2 = pd.DataFrame({ 'Name': ['Peter', 'John'], 'C': [8, 5], 'D': [9, 6] }, index=[1, 2])
要实现你要的合并效果,核心是用外连接(outer join),以Name作为连接键,这样能保留两个数据集中所有的Name记录:
merged_df = pd.merge(df1, df2, on='Name', how='outer')
这一步之后,缺失的位置会显示NaN。如果要把NaN替换成0,直接用fillna:
merged_df = merged_df.fillna(0)
要是想替换成'-',执行下面的代码就行(注意这会让原本的数值列变成字符串类型):
merged_df = merged_df.fillna('-')
最终输出的结果就和你要求的一致:
Name A B C D 0 Michael 1 2 - - 1 Peter 3 4 8 9 2 John - - 5 6
(备注:合并后索引会自动重置,要是需要保留原索引格式,可以额外用reset_index或手动调整,不影响核心合并逻辑)
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

