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

如何基于另一列的值修改列内容?Pandas实现CSV州编码转州名

问题根源

你现有代码的核心错误是关联字段匹配逻辑错误:

  • 学校表schools.csv里的state_cd存储的是IL/AL这类州编码
  • 映射表states.csv里和它对应的同值字段是state_cd,不是state_name,你原来写的right_on="state_name"完全匹配不到对应关系,自然得不到正确结果。
    另外注意代码里读取的文件名和你实际提供的文件名也不一致,需要同步修正。

修正后代码

import pandas as pd

# 注意文件名要和你实际存储的文件名保持一致
df_school = pd.read_csv("schools.csv")
df_state_map = pd.read_csv("states.csv")

# 两个表都用state_cd字段做左关联
df_merge = df_school.merge(df_state_map, on="state_cd", how="left")

# 把原来的state_cd列替换为匹配到的州名,然后删除多余的state_name列
df_merge["state_cd"] = df_merge["state_name"]
df_merge = df_merge.drop(columns=["state_name"])

# 验证结果,样例里的IL就会被替换为Illinois
print(df_merge.head())

# 如果需要导出到新csv就执行下面的代码
# df_merge.to_csv("schools_with_state_name.csv", index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:48:04