如何对DataFrame指定列应用函数?replace替换\n失效怎么办
问题根因
你当前使用的df['DMAge'].replace("\n"," ")调用的是pandas Series的全局替换方法,该方法默认匹配单元格的完整值,仅当某个单元格的全部内容就是\n时才会触发替换,不会处理字符串内部包含的\n子串,因此达不到预期效果。
正确实现方案
根据你列中\n的实际类型,选择对应代码即可:
- 如果
\n是真实的换行控制字符(ASCII 10),使用.str字符串访问器的子串替换方法:
# regex=False 表示按普通字符串匹配,不按正则解析,效率更高 df['DMAge'] = df['DMAge'].str.replace("\n", " ", regex=False)
- 如果你打印列内容时能直接看到
\n字符,说明它是字面量的反斜杠+n两个普通字符,需要转义匹配:
# 原始字符串r"\n"会匹配字面的\和n两个连续字符 df['DMAge'] = df['DMAge'].str.replace(r"\n", " ", regex=False)
如果替换后存在连续多个空格、首尾空格的问题,可以追加一步清理:
# 把连续空白字符合并为单个空格,同时去除首尾空格 df['DMAge'] = df['DMAge'].str.replace(r"\s+", " ", regex=True).str.strip()
内容的提问来源于stack exchange,提问作者Wouter van Epperzeel
相关产品推荐
相关产品推荐

