4

タブ区切りの大きなデータ ファイルがあり、pandas の「read_csv または 'read_table'」関数を使用して Python で読みたいと思います。この大きなファイルを読み込んでいるときに、「index_col」をオフにした後でも、次のエラーが表示されます。価値。

>>> read_csv("test_data.txt", sep = "\t", header=0, index_col=None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/io/parsers.py", line 187, in read_csv
    return _read(TextParser, filepath_or_buffer, kwds)
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/io/parsers.py", line 160, in _read
    return parser.get_chunk()
  File "/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/site-packages/pandas/io/parsers.py", line 613, in get_chunk
    raise Exception(err_msg)
Exception: Implicit index (columns 0) have duplicate values [372, 1325, 1497, 1636, 2486,<br> 2679, 3032, 3125, 4261, 4669, 5215, 5416, 5569, 5783, 5821, 6053, 6597, 6835, 7485, 7629, 7684, 7827, 8590, 9361, 10194, 11199, 11707, 11782, 12397, 15134, 15299, 15457, 15637, 16147, 17448,<br> 17659, 18146, 18153, 18398, 18469, 19128, 19433, 19702, 19830, 19940, 20284, 21724, 22764, 23514, 25095, 25195, 25258, 25336, 27011, 28059, 28418, 28637, 30213, 30221, 30574, 30611, 30871, 31471, .......

データに重複した値が含まれている可能性があると考えたため、grep を使用してこれらの値の一部をファイルにリダイレクトしました。

 grep "9996744\|9965107\|740645\|9999752" test_data.txt > delnow.txt

これで、このファイルを読み取ると、以下に示すように正しく読み取られます。

>>> read_table("delnow.txt", sep = "\t", header=0, index_col=None)
<class 'pandas.core.frame.DataFrame'>
Int64Index: 20 entries, 0 to 19
Data columns:
0740645                                                                 20  non-null values
M                                                                       20  non-null values
BLACK/CAPE VERDEAN                                                      20  non-null values

ここで何が起こっているのですか?私は解決策を求めて苦労していますが、役に立ちません。

また、unix で「uniq」コマンドを試して、重複する行が存在するかどうかを確認しましたが、見つかりませんでした。

チャンクサイズで何かをしなければなりませんか?

次のバージョンのパンダを使用しています

>>> pandas.__version__
'0.7.3'
>>> 
4

1 に答える 1

1

パンダの最新バージョンをインストールしました。

読めるようになりました。

>>> import pandas
>>> pandas.__version__
'0.8.1'
于 2012-09-19T17:29:42.283 に答える