我正在使用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之外使用查找和替换操作来完成此操作。