如何用Python字典批量替换Pandas DataFrame列中的多个字符?
Pandas DataFrame列批量字符替换优化
我想写更简洁的代码来替换Pandas DataFrame列中的特定字符,原来的代码是这样的:
df['age'] = ['[70-80)', '[50-60)', '[60-70)', '[40-50)', '[80-90)', '[90-100)'] df['age'] = df['age'].str.replace('[', '') df['age'] = df['age'].str.replace(')', '') df['age'] = df['age'].str.replace('50-60', '50-59') df['age'] = df['age'].str.replace('60-70', '60-69') df['age'] = df['age'].str.replace('70-80', '70-79') df['age'] = df['age'].str.replace('80-90', '80-89') df['age'] = df['age'].str.replace('90-100', '90-99')
我尝试用字典批量替换,但没成功,df['age']里的字符串完全没被替换:
chars_to_replace = { '[' : '', ')' : '', '50-60' : '50-59', '60-70' : '60-69', '70-80' : '70-79', '80-90' : '80-89', '90-100': '90-99' } for key in chars_to_replace.keys(): df['age'] = df['age'].replace(key, chars_to_replace[key])
更新
后来发现问题出在没给replace加str前缀,加上之后就正常工作了,谢谢大家的提醒!
另外感谢tdelaney提供的正则替换方案,试了之后确实有效,但我目前对正则还不太熟悉,暂时先不采用这个方案。
内容的提问来源于stack exchange,提问作者pipo_exquis
相关产品推荐
相关产品推荐

