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

基于指定列合并DataFrames:关联观影者与邮政编码数据集

合并DataFrames补充邮编对应的城市信息

没问题,我来帮你搞定这个需求!你已经有了两个关键的DataFrame:一个是包含观众邮编的zipcodes,另一个是带邮编-城市映射的zip_codes,接下来只需要用pandas的合并操作就能把城市信息补进去。

第一步:先确认连接列的名称(避坑必备)

首先得确保两个数据集里的邮编列名称对应得上——毕竟如果一个叫zip_code,另一个叫Zipcode,直接合并会找不到匹配项。先跑两行代码看看列名:

# 查看你的观众数据列
print(zipcodes.columns)
# 查看邮编数据库的列
print(zip_codes.columns)

第二步:执行合并操作

这里推荐用左连接(how='left'),这样能保证你原有的观众数据一条都不会丢,哪怕某个邮编在数据库里找不到对应城市,只会显示NaN,后续你可以按需处理这些缺失值。

情况1:两个邮编列名称不同(比如zipcodes是zip_code,zip_codes是Zipcode)

# 指定左右两边的连接列
merged_data = pd.merge(zipcodes, zip_codes, left_on='zip_code', right_on='Zipcode', how='left')

情况2:两个邮编列名称完全一致(比如都是zip_code)

那就更简单了:

merged_data = pd.merge(zipcodes, zip_codes, on='zip_code', how='left')

第三步:整理合并后的结果(可选但实用)

合并后可能会出现重复的邮编列(比如上面情况1里的zip_code和Zipcode),或者你只想保留需要的列,比如原观众数据加上城市列:

# 删除重复的邮编列(如果有的话)
merged_data = merged_data.drop('Zipcode', axis=1)

# 按需筛选列,比如保留原所有列+城市列
final_data = merged_data[['zip_code', 'City'] + [col for col in zipcodes.columns if col != 'zip_code']]

小提醒

别忘了你之前已经把zipcodes的zip_code设为object类型,一定要确保zip_codes里的邮编列也是同样的类型(比如读取的时候加dtype={'Zipcode': object}),不然可能会因为类型不匹配导致合并失败哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:44:00