如何在Python中按主键将DataFrame列匹配添加至另一DataFrame?
按主键匹配合并DataFrame列的解决方案
直接用pandas.merge()就能解决你的问题,insert()和add()本身就不是用来做按主键行匹配合并的工具,所以达不到效果。
步骤示例:
- 先导入pandas并构造示例数据
import pandas as pd # 构造你的DataFrame A df_a = pd.DataFrame({ 'id': ['x', 'y', 'q', 'r'], 'name': ['a', 'b', 'c', 'd'] }) # 构造你的DataFrame B df_b = pd.DataFrame({ 'id': ['x', 'q', 'y'], 'department': ['quality', 'production', 'hr'] })
- 按主键
id左合并两个DataFrame
# 左合并保留df_a的所有行,匹配不到的列用NaN填充 result_df = pd.merge(df_a, df_b, on='id', how='left')
- 将缺失值替换为你需要的
-
result_df['department'] = result_df['department'].fillna('-')
最终结果:
| id | name | department |
|---|---|---|
| x | a | quality |
| y | b | hr |
| q | c | production |
| r | d | - |
参数说明:
on='id':指定用来匹配的主键列,确保两个DataFrame都有这一列how='left':以df_a为基准,保留它的所有行;如果df_b中没有对应id的记录,department列会先填充为NaN,之后我们用fillna('-')替换成你要的符号
内容的提问来源于stack exchange,提问作者murat can Urhan
相关产品推荐
相关产品推荐

