我有一个csv文件,它有几百行和13列。csv文件的结构如下(示例):
a b c d
23 43 54 65
76 23 43 63
.
.
a b e c d
21 12 43 12 09
23 12 32 43 87一个标题的值显示在另一个标题下。因此,当我使用read_csv时,我得到ParserError:错误标记数据。C错误:第27458行应包含12个字段,实际为13个。
关于如何清理/重新排列csv文件并将正确的列值放在正确的列下,有什么建议吗?可以创建新的csv或将其输入到数据库中。谢谢
发布于 2019-10-20 04:42:16
如果您不是特别需要创建一个数据帧,那么您可以通过不使用pandas来轻松地解决这个问题。标准的csv模块可以很好地读取不同长度的行。每行都以列表的形式返回。您可以直接使用它们,或者如果您需要清理csv,您可以将空字符串附加到列表中,使它们具有相同的长度,并将它们写回一个新文件。
import csv
with open('test.txt','r') as f:
rdr=csv.reader(f)
for i in rdr:
print(i)发布于 2019-10-20 04:50:26
如果您可以在csv文件中提供列名(总13)作为文件的第一行,您将能够使用read_csv,它将在未给定值的任何地方返回null数据,然后您可以用任何其他您想要的值替换NaN。
https://stackoverflow.com/questions/58467726
复制相似问题