我目前正在尝试构建一个相当简单的脚本,它将比较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)
我认为这与第一行有关,因为当我删除它时,问题就消失了。我怎样才能忽略这些错误,只用空值填充其余的错误?
最佳, 奥利弗
答案 0 :(得分:0)
我认为正确的答案是,一般而言,你不能。 csv_read
期望输入结构良好。当你超出预期的投入时,每个人都可能想要不同的行为。例如,如果您的输入如下所示:
0
1,2,3
4,5,6
7,8,9
一个人可能想要忽略第一行,另一个人可能想要为第一行的两个缺失列填充NA值,而另一个人可能只想读取第一列(推断出只有一列第一行,忽略后续行的多余值)。所有这三种解决方案都是合理的,因此最好将数据清理留给用户。
话虽如此,如果您发布有关您尝试清理的输入类型的更多信息,我相信这里有人可以帮助您。