在 pandas 中,“合并数据框”通常指以下几种常见场景,下面按使用频率从高到低介绍,并给出示例。
pd.merge() —— 按“键”合并(类似 SQL 的 JOIN)最常用,适合有共同字段(如 id、date)的情况。
import pandas as pd
df1 = pd.DataFrame({
'id': [1, 2, 3],
'name': ['A', 'B', 'C']
})
df2 = pd.DataFrame({
'id': [1, 2, 4],
'score': [90, 85, 88]
})
result = pd.merge(df1, df2, on='id', how='inner')
how 参数'inner':交集(默认)'left':左连接'right':右连接'outer':全连接✅ 多键合并:
pd.merge(df1, df2, on=['id', 'date'])
df.join() —— 按索引合并适合索引相同的数据框。
df1 = df1.set_index('id')
df2 = df2.set_index('id')
result = df1.join(df2, how='left')
pd.concat() —— 纵向或横向拼接df3 = pd.DataFrame({
'id': [4, 5],
'name': ['D', 'E']
})
result = pd.concat([df1, df3], ignore_index=True)
result = pd.concat([df1, df2], axis=1)
⚠️ 注意:横向拼接默认按索引对齐
df.append()(已不推荐)⚠️ pandas 2.0 已弃用,建议用
concat
pd.merge(df1, df2, on='id', suffixes=('_left', '_right'))
pd.concat([df1, df2], ignore_index=True)
| 需求 | 推荐方法 |
|---|---|
| 按字段关联 | pd.merge |
| 按索引关联 | df.join |
| 上下拼数据 | pd.concat |
| SQL 风格 | pd.merge |
如果你有具体数据结构或合并逻辑(比如“按时间对齐”“左表为主”“多对多”),可以直接贴出来,我可以帮你写精确代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。