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

如何在R语言中基于城市名称为df1新增来自df2的列?

解决方法:用Pandas左连接合并DataFrame

嘿,这个需求用Pandas的merge()方法就能轻松搞定,核心是用**左连接(left join)**保留df1的所有行,同时匹配df2中对应城市的信息,不匹配的位置自动填充NA。

完整代码示例

import pandas as pd

# 构建你的两个DataFrame
df1 = pd.DataFrame({
    'CITY': ['A', 'B', 'C', 'D', 'E'],
    'V1': [2, 6, 9, 8, 9],
    'V2': [0, 4, 2, 2, 5]
})

df2 = pd.DataFrame({
    'CITY': ['C', 'E'],
    'X': [45, 9]
})

# 执行左连接合并
merged_df = df1.merge(df2, on='CITY', how='left')

# 可选:将NaN替换为大写NA(完全匹配你期望的结果格式)
merged_df['X'] = merged_df['X'].fillna('NA')

print(merged_df)

运行结果

CITY  V1  V2   X
0    A   2   0  NA
1    B   6   4  NA
2    C   9   2  45
3    D   8   2  NA
4    E   9   5   9

参数说明

  • how='left':这是实现需求的关键,指定以df1为左表,保留左表的全部行;右表(df2)中与左表匹配的行会被合并进来,不匹配的列自动填充缺失值。
  • on='CITY':指定用来匹配的列是CITY,因为两个表都有这个列,所以直接用该参数即可。如果两个表的匹配列名不同,可以用left_on和right_on分别指定左右表的匹配列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:47:32