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

如何基于stacode列合并两个结构不同的Pandas DataFrame

解决Pandas DataFrame合并问题

你的代码报错核心原因是right_on参数传入了列表,但left_on是单个列,两边的关联键数量不匹配——合并只需要基于共有的stacode列,不需要把pga_sta也作为关联键。

另外,为了避免合并后引入latitude、longitude这类不需要的列,建议先从df2中提取需要的stacode和pga_sta列,再执行合并。

正确代码示例

如果需要保留df1的所有行,同时匹配df2中对应stacode的pga_sta值(没有匹配的会显示NaN),用左连接:

# 先提取df2的必要列,避免引入多余数据
df2_filtered = df2[['stacode', 'pga_sta']]
# 基于stacode列合并
new_df = df1.merge(df2_filtered, on='stacode', how='left')

如果需要保留两个表中所有的stacode记录(不管两边是否都存在),用外连接:

df2_filtered = df2[['stacode', 'pga_sta']]
new_df = df1.merge(df2_filtered, on='stacode', how='outer')

结果说明

  • 左连接后,new_df会包含df1的所有原有列,加上匹配到的pga_sta列,df1中没有对应df2 stacode的行,pga_sta会填充为NaN
  • 外连接会包含两边所有的stacode记录,df1中没有的stacode行,原有列会填充NaN;df2中没有的stacode行,pga_sta会填充NaN

内容的提问来源于stack exchange,提问作者Murat B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:17:05