如何在Python中批量替换DataFrame列中的缩写(如NY→New York)
Pandas批量替换DataFrame列中的缩写为全称的正确方法
核心解决思路
不用多次单独调用单值替换,直接给replace()方法传入键值对映射字典,就能一次性完成所有缩写到全称的替换。
具体实现步骤
定义替换映射字典
把需要替换的所有缩写和对应的全称整理成字典:state_mapping = { 'NY': 'New York', 'US': 'United States', 'CA': 'California', 'TX': 'Texas' }批量替换的两种写法
写法一(沿用你习惯的
inplace模式):df['prod_state'].replace(state_mapping, inplace=True)直接将字典传入
replace(),Pandas会自动遍历prod_state列,匹配字典中的键并替换为对应全称。写法二(更推荐,避免修改原DataFrame):
df['prod_state'] = df['prod_state'].replace(state_mapping)这种方式返回替换后的Series,重新赋值给原列,能保留原始数据的副本,降低误操作风险。
常见问题提示
- 替换默认是精确匹配,如果列中的缩写存在大小写不一致(比如
ny而非NY),可以添加regex=True并使用正则匹配,例如:state_mapping = { r'^NY$': 'New York', r'^US$': 'United States' } df['prod_state'] = df['prod_state'].replace(state_mapping, regex=True) - 之前批量替换出错,大概率是因为错误地传入多组单值参数(而非字典),比如
replace('NY','New York','US','United States'),这种写法不符合replace()的参数规范。
内容的提问来源于stack exchange,提问作者Jessica Chizoba Nkwa
相关产品推荐
相关产品推荐

