我正在使用 Pandas 函数 pd.read_csv
导入由 |
分隔的 txt 文件。列标题有 419 个字段,因此它会按此方式计算所有字段。但有些行的列数超过 419。
那么我如何使数据框能够根据需要增加列数,或者只添加X数量的列以允许将来有更多的列。
示例:
我该如何解释“F”?
A B C D E
A B C D E
A B C D E F
这是我收到的错误。我在 Jupyter 笔记本中使用 python 3。
ParserError: Error tokenizing data. C error: Expected 419 fields in line 7945, saw 424
这是我尝试使用的代码
data = pd.read_csv('filepath.txt', sep="|",skip_blank_lines=True, encoding = 'latin-1', header= None)
最佳答案
根据您的设置,在阅读完每一行之前,您不会知道列数。那不会有效率。一种方法是将数据读入列表列表中,并根据需要附加任意数量的 NaN 值。然后提供给 pd.DataFrame
构造函数。
这是一个例子:
from io import StringIO
import csv
import numpy as np
x = StringIO("""A|B|C|D|E
A|B|C|D|E
A|B|C|D|E|F""")
# replace x with open('file.csv', 'r')
with x as fin:
data = list(csv.reader(fin, delimiter='|'))
num = max(map(len, data))
data = [i+[np.nan]*(num-len(i)) for i in data]
df = pd.DataFrame(data)
print(df)
0 1 2 3 4 5
0 A B C D E NaN
1 A B C D E NaN
2 A B C D E F
关于python - 向 Pandas 数据框添加更多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53503533/