如何将DataFrame中n列的y3替换为3rd、y4替换为4th
Pandas替换DataFrame指定列的特定值
原数据
import pandas as pd df = pd.DataFrame({ 'x': [-17.7, -15.0, -12.5, -12.4], 'y': [-0.785430, -3820.085000, 2.138833, 1.721205], 'd': [0.053884, 0.085000, 0.143237, 0.251180], 'n': ['y1', 'y4', 'y3', 'y3'] })
需求
将n列中所有y3替换为"3rd",所有y4替换为"4th",得到目标输出。
解决方案
方法1:使用replace方法(最简洁)
直接对目标列调用replace,传入替换字典即可完成批量替换:
df['n'] = df['n'].replace({'y3': '3rd', 'y4': '4th'})
执行后结果:
x y d n 0 -17.7 -0.785430 0.053884 y1 1 -15.0 -3820.085000 0.085000 4th 2 -12.5 2.138833 0.143237 3rd 3 -12.4 1.721205 0.251180 3rd
方法2:使用map方法(适合扩展映射规则)
定义映射字典后,用map结合get方法保留未在映射中的原始值:
mapping = {'y3': '3rd', 'y4': '4th'} df['n'] = df['n'].map(lambda x: mapping.get(x, x))
方法3:条件赋值(适合复杂筛选场景)
通过布尔索引定位目标行后逐一替换:
df.loc[df['n'] == 'y3', 'n'] = '3rd' df.loc[df['n'] == 'y4', 'n'] = '4th'
内容的提问来源于stack exchange,提问作者Peter M
相关产品推荐
相关产品推荐

