Python Pandas:基于值匹配的异名列合并两个DataFrame
Pandas DataFrame按不同列名关联合并解决方案
没问题,这种不同列名但值完全匹配的合并需求,用Pandas的merge()方法就能完美解决,正好契合你的场景。
核心实现代码
直接通过指定左右表的关联列,就能把两个DataFrame合并成你想要的结构:
import pandas as pd # 初始化df1 data={"col1":["A","B","D","f"], "col2":[4,2,4,6], "col3":[7,6,9,11], "col4":[14,11,22,8], "multi":[1.4,2.5,1.6,2.2]} df1=pd.DataFrame.from_dict(data) # 初始化df2 data2={"col5":["A","B","D","f"], "col6":[345,55,44,16], "col7":[4,7,4,6], "col8":[1,5,3,9], "multi_2":[2,2,4,9]} df2=pd.DataFrame.from_dict(data2) # 执行合并:用col1和col5作为关联键 df3 = pd.merge(df1, df2, left_on='col1', right_on='col5', how='inner') # (可选)如果不需要保留col5列,可以添加这行 # df3 = df3.drop('col5', axis=1) print(df3)
参数说明
left_on='col1':指定左表(df1)的关联列right_on='col5':指定右表(df2)的关联列how='inner':因为你提到两列值完全匹配,内连接会保留所有匹配的行,正好符合你的需求
运行后得到的df3就和你给出的示例结构完全一致,包含两个表的所有列(如果保留col5的话会多这一列,你可以根据需求选择是否删除)。
内容的提问来源于stack exchange,提问作者matan
相关产品推荐
相关产品推荐

