我有一个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或将其输入到数据库中。谢谢
答案 0 :(得分:0)
如果您不需要特别创建数据框,则可以不使用熊猫来轻松处理。标准的csv模块将愉快地读取不同长度的行。每行以列表形式返回。您可以直接使用这些字符串,或者如果需要清理csv,则可以将空字符串追加到列表中,使它们的长度都相同,然后将它们写回到新文件中。
import csv
with open('test.txt','r') as f:
rdr=csv.reader(f)
for i in rdr:
print(i)
答案 1 :(得分:0)
如果您可以在 csv 文件中提供列名(总计 13 )作为文件的第一行,则可以使用 read_csv 会在没有给出任何值的情况下返回null数据,然后您可以将 NaN 替换为所需的任何其他值。