You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在pandas中合并两个DataFrame?是否需要用循环或Linux操作?

Pandas合并两个DataFrame实现方案

核心结论

该需求可以通过pandas内置方法直接实现,无需编写循环,也无需切换到Linux环境操作,全平台pandas运行逻辑完全一致,内置方法的执行效率远高于手动实现的循环逻辑。

具体实现代码

1. 导入依赖并构造示例DataFrame

如果你已经有现成的df1、df2可以跳过这一步,这里仅为还原你的数据场景:

import pandas as pd

# 构造第一个DataFrame
df1 = pd.DataFrame([
    ['john', 21, 56, 'M', 'futboll'],
    ['martha', 25, 43, 'F', 'soccer'],
    ['esthela', 29, 53, 'F', 'judo'],
    ['harry', 18, 72, 'M', 'karate'],
    ['irving', 24, 61, 'M', 'karate'],
    ['jerry', 21, 56, 'M', 'soccer'],
    ['john_2', 26, 69, 'M', 'futboll'],
    ['malina', 22, 53, 'F', 'soccer']
], columns=['name', 'age', 'weight', 'sex', 'd_type'])

# 构造第二个DataFrame
df2 = pd.DataFrame([
    ['futboll', 'high', 'federal'],
    ['soccer', 'medium', 'state'],
    ['judo', 'medium', 'federal'],
    ['karate', 'high', 'federal']
], columns=['d_type', 'impact', 'founds_in'])

2. 执行合并操作

两个表的公共关联键是d_type字段,直接用merge方法关联即可:

# 默认内连接,仅保留两个表d_type匹配的行,完全符合你的需求
result_df = pd.merge(df1, df2, on='d_type')
# 如果需要保留df1的所有行,即使d_type在df2中无匹配,可以改用左连接:
# result_df = pd.merge(df1, df2, on='d_type', how='left')

3. 合并结果验证

最终得到的result_df就会包含你需要的所有字段:name、age、weight、sex、d_type、impact、founds_in,和预期结构完全一致。

常见疑问解答

  • 要不要写循环实现?
    完全不需要,pandas的merge是基于底层优化实现的算子,性能比手动写Python循环高几个数量级,数据量越大优势越明显。
  • 要不要切换到Linux环境操作?
    不需要,pandas是跨平台工具包,Windows、macOS、Linux上的运行逻辑和输出结果完全一致,没有平台差异。

内容的提问来源于stack exchange,提问作者Hctor Alessandro Lpez Hernndez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:54:07