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

Python中匹配DataFrame默认索引与对应标识符的方法

通过默认索引合并两个Pandas DataFrame的方法

刚好碰到过一模一样的需求,要通过Pandas的默认行索引把两个DataFrame对应起来,获取对应的标识符。这里有几个简单好用的方法,你可以根据自己的场景选:

方法1:使用pd.concat()按列合并

因为两个DataFrame的默认索引是完全匹配的,直接用concat指定按列合并(axis=1)就可以自动对齐索引:

import pandas as pd

# 构造示例数据
df1 = pd.DataFrame({'id': [1, 2, 3, 4]})
df2 = pd.DataFrame({'id_df2': [1234, 2222, 3333, 3344]})

# 按列合并,自动对齐索引
result = pd.concat([df1, df2], axis=1)
print(result)

输出结果就是你想要的:

id  id_df2
0   1    1234
1   2    2222
2   3    3333
3   4    3344

方法2:使用pd.merge()指定按索引合并

如果需要更明确地指定合并逻辑(比如后续可能有索引不匹配的情况),可以用merge方法,设置left_index=True和right_index=True来基于索引合并:

import pandas as pd

df1 = pd.DataFrame({'id': [1, 2, 3, 4]})
df2 = pd.DataFrame({'id_df2': [1234, 2222, 3333, 3344]})

# 基于左右DataFrame的索引合并
result = pd.merge(df1, df2, left_index=True, right_index=True)
print(result)

这个方法的输出和上面完全一致,好处是可以额外添加how参数(比如how='inner'、how='outer')来处理索引不匹配的场景,灵活性更高。

方法3:直接赋值列(适用于索引完全匹配的场景)

如果你能确保两个DataFrame的索引100%对应,没有缺失或错位,直接把df2的列赋值给df1也是最快捷的方式:

import pandas as pd

df1 = pd.DataFrame({'id': [1, 2, 3, 4]})
df2 = pd.DataFrame({'id_df2': [1234, 2222, 3333, 3344]})

# 直接将df2的列赋值给df1
df1['id_df2'] = df2['id_df2']
print(df1)

这种方法代码最少,执行效率也最高,但要注意如果索引不匹配的话,会出现NaN值,所以只适合你这种索引完全对齐的情况。

内容的提问来源于stack exchange,提问作者Django0602

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 19:37:47