Pandas-字段值中存在管道分隔符,导致出现错误行



我正在使用Pandas导入一个文本文件,如下所示:

data = pd.read_csv('filepath.txt', sep='|', quoting=3, 
error_bad_lines=False, encoding='latin1', low_memory=False)

我在第1行遇到一个错误,因为字段值中有一个Pipe。当它试图解析该行时,发现该行的长度太长,从而引发错误。它允许文件进行处理;但是,缺少此行。

示例:

行-

4321|Test|1/2/1900
1234|Test||1/1/1900

分析此文件将创建:

4321   Test    1/2/1900
1234   Test               1/1/1900

我想消除第二行"测试|"中的多余|,或者让熊猫明白它的存在是为了创建:

4321   Test    1/2/1900
1234   Test    1/1/1900

或者这就好了:

1234   Test|    1/1/1900

我尝试过使用转换器、其他引用方法(quotchars等(,但都没有用。

有什么办法吗?欢迎所有建议。

Eric

我认为最简单的方法是删除"||"的任何实例,然后使用panda。例如:

import pandas as pd
from io import StringIO

buffer= StringIO()
with open(r'filepath.txt', 'r') as f:
for line in f.readlines():
if "||" not in line:
buffer.write(line)


buffer.seek(0)
data = pd.read_csv(buffer, sep='|', quoting=3,
error_bad_lines=False, encoding='latin1', low_memory=False)

您也可以在python之外使用查找和替换操作来完成此操作。

最新更新