基于给定DataFrame数据,如何移除其中所有换行符?
移除DataFrame中所有换行符的方法
示例数据构造
先还原你提供的DataFrame:
import pandas as pd data = { 'ID': ['0BX-164463', '0BX-164463', '0BX-164464', '0BX-164464'], 'a': ['abc \n def', 'hijk \n lmnop', 'qrst \n uvwxyz', '12345 \n abcdefg \n gravy'] } df = pd.DataFrame(data)
方法1:针对特定列移除换行符
如果只有a列存在换行符,直接用str.replace替换所有\n:
# 移除列a中的所有\n df['a'] = df['a'].str.replace('\n', '', regex=False)
如果数据中同时存在Windows风格的\r\n换行,可以用正则匹配所有换行相关字符:
# 同时处理\n和\r\n df['a'] = df['a'].str.replace(r'[\n\r]', '', regex=True)
方法2:处理整个DataFrame的所有列
如果不确定哪些列有换行符,想要批量处理所有字符串列:
# 遍历所有列,仅对字符串类型的列移除换行符 df = df.apply(lambda col: col.str.replace('\n', '', regex=False) if col.dtype == 'object' else col)
或者用applymap实现更简洁的批量处理:
# 对每个元素判断,是字符串就移除换行符,否则保持原样 df = df.applymap(lambda x: x.replace('\n', '') if isinstance(x, str) else x)
处理后效果
完成处理后,a列的内容会变为:
abc defhijk lmnopqrst uvwxyz12345 abcdefg gravy
内容的提问来源于stack exchange,提问作者Ed_Gravy
相关产品推荐
相关产品推荐

