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

两个DataFrame的索引匹配问题

两个DataFrame的索引匹配问题

看起来你有两个需要关联的DataFrame,我先把你给出的表格整理清晰:

第一个DataFrame(我们暂且称它为df1):

XY
01
0125
165
159
228
......

第二个DataFrame(我们称它为df2,核心逻辑是它的index对应df1的X列,包含经纬度信息):

indexlatlon
090.00.0
190.012.5
290.025.0
.........

解决方案:匹配经纬度到第一个DataFrame

这里有两种简单直接的方法,用Pandas就能轻松实现:

方法1:使用merge做左连接(最稳妥的关联方式)

你可以直接基于df1的X列和df2的索引做左连接,这样能完整保留df1的所有行,同时把对应X值的经纬度匹配过来:

import pandas as pd

# 假设df1和df2已经是你创建好的DataFrame
merged_df = pd.merge(df1, df2, left_on='X', right_index=True, how='left')

如果更习惯用列名匹配,也可以先把df2的索引转成列再合并:

df2_with_index_col = df2.reset_index().rename(columns={'index': 'X'})
merged_df = pd.merge(df1, df2_with_index_col, on='X', how='left')

方法2:使用map快速映射(适合仅添加单列/少量列的场景)

如果只是需要给df1新增经纬度列,直接用map通过X值映射df2的对应值即可:

df1['lat'] = df1['X'].map(df2['lat'])
df1['lon'] = df1['X'].map(df2['lon'])

两种方法最终都会得到包含X、Y、lat、lon的完整DataFrame,每个X对应的经纬度会自动匹配到所有对应行~

备注:内容来源于stack exchange,提问作者Ruby

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 11:44:36