首页 > 解决方案 > 使用 Pandas 在 Python 中处理复杂的管道分隔 CSV/平面文件导入

问题描述

我在 stackoverflow 上四处寻找,但找不到类似的问题 - 如果存在,请提前抱歉。

我正在尝试导入一个大的“|” 具有 7 列的分隔 CSV 文件。

问题是一些数据列包含自由文本,在某些情况下也恰好包含额外的管道。这会导致它在数百行上出错,正如它自然所期望的那样,在我的例子中是 7 列,但它看到的是 8、9、10 行。

下面的代码将跳过不寻常的行并导入文件的其余部分,但这无济于事,因为我们需要所有行。

import pandas as pd
fileImport = pd.read_csv('myfile.csv', sep="|", error_bad_lines=False, encoding = "ISO-8859-1")

处理这些不寻常/烦人的行是否有明显的技巧?

这种行的一个例子:

11111|2222|2000-11-01 00:00:00|AAAA.|Alcohol use disorder identificatn test|XXXXXX||An overall total score of less than 5 is negative||How often: Monthly or less||How many: 3 - 4||6 or more units: Never||Date: Unknown|||

似乎列中的单独数据项进一步用管道封装:

|An overall total score of less than 5 is negative||How often: Monthly or less||How many: 3 - 4||6 or more units: Never||Date: Unknown|

标签: pythonpython-3.xpandascsv

解决方案


推荐阅读