R语言如何匹配合并人口、国土面积两类分国家维度数据集
合并数据集实现方案
你需要以人口数据集为基准做左关联匹配,常用实现方式如下:
方法1:Python Pandas 实现
适合数据量较大、需要批量处理的场景,核心是用左连接保留人口数据集的全部行:
import pandas as pd # 读取两个数据集,支持csv、excel等格式 pop_df = pd.read_csv("人口数据集文件路径.csv") land_df = pd.read_csv("国土面积数据集文件路径.csv") # 左连接合并,仅匹配人口数据集中存在的国家 merge_result = pd.merge( left=pop_df, right=land_df[["Country", "Landmass"]], on="Country", how="left" ) # 导出结果 merge_result.to_csv("合并后结果.csv", index=False)
未匹配到国土面积的国家,Landmass列会自动填充为空值NaN。
方法2:SQL 实现
如果数据存储在关系型数据库中,直接用LEFT JOIN语句查询即可:
SELECT pop.*, land.Landmass FROM 人口表名 pop LEFT JOIN 国土面积表名 land ON pop.Country = land.Country;
方法3:Excel 实现
适合数据量较小的场景,用XLOOKUP函数匹配:
- 假设人口数据集的国家列是A列,表头在第1行,新增Landmass列为C列
- 国土面积数据集存储在Sheet2,国家列为A列,面积列为B列
- 在人口表C2单元格输入公式:
=XLOOKUP(A2,Sheet2!A:A,Sheet2!B:B,"") - 下拉公式填充整列即可,匹配不到的国家会显示空白
提示:如果匹配结果不符合预期,优先检查两个数据集的Country字段是否存在大小写差异、前后空格、译名不一致的问题,清洗字段后再合并即可。
内容的提问来源于stack exchange,提问作者MakeTheErrorDie
相关产品推荐
相关产品推荐

