忽略DataFrame CSVread中的第一行

时间:2013-01-21 12:08:58

标签: python pandas

我目前正在尝试构建一个相当简单的脚本,它将比较CSV中的两个DataFrame并执行内部合并以删除重复项。现在我注意到我的一个CSV看起来像这样:

Row [0]: One column
Row [1:]: 2+ columns

现在,当我尝试通过pandas.csv_read(...)导入它时,我收到以下错误

Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/pandas-0.10.0-py2.7-macosx-10.5-i386.egg/pandas/io/parsers.py", line 391, in parser_f
return _read(filepath_or_buffer, kwds)
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/pandas-0.10.0-py2.7-macosx-10.5-i386.egg/pandas/io/parsers.py", line 207, in _read
return parser.read()
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/pandas-0.10.0-py2.7-macosx-10.5-i386.egg/pandas/io/parsers.py", line 624, in read
ret = self._engine.read(nrows)
File "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/pandas-0.10.0-py2.7-macosx-10.5-i386.egg/pandas/io/parsers.py", line 945, in read
data = self._reader.read(nrows)
File "parser.pyx", line 634, in pandas._parser.TextReader.read (pandas/src/parser.c:5795)
File "parser.pyx", line 656, in pandas._parser.TextReader._read_low_memory (pandas/src/parser.c:6015)
File "parser.pyx", line 734, in pandas._parser.TextReader._read_rows (pandas/src/parser.c:6892)
File "parser.pyx", line 791, in pandas._parser.TextReader._convert_column_data (pandas/src/parser.c:7596)
File "parser.pyx", line 1015, in pandas._parser.TextReader._get_column_name (pandas/src/parser.c:10425)

我认为这与第一行有关,因为当我删除它时,问题就消失了。我怎样才能忽略这些错误,只用空值填充其余的错误?

最佳, 奥利弗

1 个答案:

答案 0 :(得分:0)

我认为正确的答案是,一般而言,你不能。 csv_read期望输入结构良好。当你超出预期的投入时,每个人都可能想要不同的行为。例如,如果您的输入如下所示:

0
1,2,3
4,5,6
7,8,9

一个人可能想要忽略第一行,另一个人可能想要为第一行的两个缺失列填充NA值,而另一个人可能只想读取第一列(推断出只有一列第一行,忽略后续行的多余值)。所有这三种解决方案都是合理的,因此最好将数据清理留给用户。

话虽如此,如果您发布有关您尝试清理的输入类型的更多信息,我相信这里有人可以帮助您。