如何在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
相关产品推荐
相关产品推荐

