我必须解析从某些第三方软件导出的 csv 文件,该文件不会转义文本字段中的换行符。
每个文件都有一个标题,因此每行必须具有的确切列数是已知的,但每个文件的列数不同。 分隔符是管道字符 |,它有 CRLF 行结尾。
如何删除或转义数据中的换行符?
我找到了这个答案,但我宁愿替换任何假换行符,然后用
read_csv
读取文件,但是我的正则表达式专业知识不足以重新调整该解决方案的用途。
谢谢!
这里有一个示例
data.csv
文件:
id|name|description|score
1|john|john\nfrom arizona|10
2|sarah|sarah\nfrom california|12
3|daniel|daniel\nfrom nevada|7
阅读它并将描述字段中的
'\n'
字符替换为 '-'
:
import pandas as pd
df = pd.read_csv('data.csv', sep='|', converters={'description': lambda x: x.replace('\\n',' - ')})
print(df)
结果:
id name description score
0 1 john john - from arizona 10
1 2 sarah sarah - from california 12
2 3 daniel daniel - from nevada 7