0

現在、CSV から 2 つの DataFrame を比較し、内部マージを実行して重複を削除する、かなり単純なスクリプトを作成しようとしています。ここで、CSV の 1 つが次のようになっていることに気付きました。

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)

これは最初の行に関係していると思います。削除すると問題が解決するからです。このようなエラーを無視して、残りを空の値で埋めるにはどうすればよいですか?

ベスト、オリバー

4

1 に答える 1

0

一般的にはできないというのが正しい答えだと思います。 csv_read入力が整形式であることを期待します。予想外の入力を行った場合、誰もが異なる動作を望む場合があります。たとえば、入力が次のようになっているとします。

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

ある人は最初の行を無視したいかもしれませんし、別の人は最初の行の 2 つの欠けている列に NA 値を入力したいかもしれませんし、別の人は最初の列だけを読みたいかもしれません (最初の行から 1 列しかないことを推測します)。 、および後続の行の超過値を無視します)。3 つの解決策はすべて合理的であるため、データのクリーンアップはユーザーに任せるのが最善です。

そうは言っても、クリーンアップしようとしている入力の種類についてさらに情報を投稿すると、ここの誰かがあなたを助けることができると確信しています.

于 2013-02-21T15:31:43.997 に答える