我无法读取csv文件。问题是由于文件的结构。我想将它读入一个熊猫数据框对象,但有些行有更多列,然后是其他列。例如,我可能希望大多数数据是在这样的形式:阅读带熊猫杂乱结构的csv文件
Col1,Col2,Col3
a,b,c,
a,b,c,
a,a,b,c,
a,b,c,c,
a,b,c
有没有一种方法可以让我在通过线csv文件读取,这样它会创建两个数据帧,一个与预期列数和另一个与行需要进一步检查?
我无法读取csv文件。问题是由于文件的结构。我想将它读入一个熊猫数据框对象,但有些行有更多列,然后是其他列。例如,我可能希望大多数数据是在这样的形式:阅读带熊猫杂乱结构的csv文件
Col1,Col2,Col3
a,b,c,
a,b,c,
a,a,b,c,
a,b,c,c,
a,b,c
有没有一种方法可以让我在通过线csv文件读取,这样它会创建两个数据帧,一个与预期列数和另一个与行需要进一步检查?
一个办法 - 效率低下,而且有效的 - 就是让更多的空间比您需要:
>>> df = pd.read_csv("knop.csv", names=range(6))
>>> df
0 1 2 3 4 5
0 Col1 Col2 Col3 NaN NaN NaN
1 a b c NaN NaN NaN
2 a b c NaN NaN NaN
3 a a b c NaN NaN
4 a b c c NaN NaN
5 a b c NaN NaN NaN
>>> df = df.dropna(axis=1,how='all')
>>> df
0 1 2 3
0 Col1 Col2 Col3 NaN
1 a b c NaN
2 a b c NaN
3 a a b c
4 a b c c
5 a b c NaN
数据的所有帧,处理后分离它(包括促进第一行回到列名)应该很简单。
谢谢。这是我开始前进的方法。 – knop
您应该将其视为一个两阶段过程:数据清理,然后加载。您可以使用Python内置的csv
模块执行清理步骤,逐个检查每一行。除非你只是想放弃额外的列,否则你需要类似的东西来处理锯齿状的线条。
DataFrames本质上是表格式的。没有DataFrame这样的东西,其中不同的行具有不同数量的列。您最终打算如何处理值过多的行? – BrenBarn
我需要查看并查看重复的值并将其删除。每行应该有40列,但一些值是重复的,因此行被移动。 – knop