Pandas read_csv,如果给出了确切的列数,如何忽略文本字段中的换行符

问题描述 投票:0回答:1

我必须解析从某些第三方软件导出的 csv 文件,该文件不会转义文本字段中的换行符。

每个文件都有一个标题,因此每行必须具有的确切列数是已知的,但每个文件的列数不同。 分隔符是管道字符 |,它有 CRLF 行结尾。

如何删除或转义数据中的换行符?

我找到了这个答案,但我宁愿替换任何假换行符,然后用

read_csv
读取文件,但是我的正则表达式专业知识不足以重新调整该解决方案的用途。

谢谢!

python pandas regex csv
1个回答
0
投票

这里有一个示例

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
© www.soinside.com 2019 - 2024. All rights reserved.