2012-08-22 1 views
7

私はpandas APIを使用してデータフレームに読み込んだcsvファイルを持っています。 私はデフォルトの最初の行の代わりに自分のヘッダを設定しようとしています。 (私もいくつかの行を取り除きます。)これをどのようにして最高に達成するのですか?pandas.read_csvを使用してヘッダを設定する

私は次のことを試してみましたが、予想通り、これは動作しませんでした:これは、次のエラー与え

header_row=['col1','col2','col3','col4', 'col1', 'col2'] # note the header has duplicate column values 
df = pandas.read_csv(csv_file, skiprows=[0,1,2,3,4,5], names=header_row) 

-

File "third_party/py/pandas/io/parsers.py", line 187, in read_csv 
File "third_party/py/pandas/io/parsers.py", line 160, in _read 
File "third_party/py/pandas/io/parsers.py", line 628, in get_chunk 
File "third_party/py/pandas/core/frame.py", line 302, in __init__ 
File "third_party/py/pandas/core/frame.py", line 388, in _init_dict 
File "third_party/py/pandas/core/internals.py", line 1008, in form_blocks 
File "third_party/py/pandas/core/internals.py", line 1036, in _simple_blockify 
File "third_party/py/pandas/core/internals.py", line 1068, in _stack_dict 
IndexError: index out of bounds 

を私はその後

df.columns = header_row 

経由での設定の列を試してみましたしかし、これはおそらく列の値が重複しているためにエラーが発生しました。

File "engines.pyx", line 101, in pandas._engines.DictIndexEngine.get_loc  
(third_party/py/pandas/src/engines.c:2498) 
File "engines.pyx", line 107, in pandas._engines.DictIndexEngine.get_loc 
(third_party/py/pandas/src/engines.c:2447) 
Exception: ('Index values are not unique', 'occurred at index entity') 

私はパンダ0.7.3バージョンを使用しています。ドキュメントから -

名:列名の配列のような リスト

私はここに簡単な何かが欠けています確信しています。ここに助けてくれてありがとう。

答えて

1

パンダ0.7.3は、インデックス重複をサポートしていません。 0.8.0から0.8.1の間で少なくとも0.8.0が必要です。インデックスに重複しているいくつかの問題が修正されているので、0.8.1(=最新の安定リリース)が最適かもしれません。しかし、このバージョンには重複する列名を持つissueがあります(重複する列名を持つデータフレームを表示することはできません)ので、0.8.1でも問題は解決しません。

+0

参考になりました。私は再訪し、列の重複値の要件を取り除いた。 – Manju

関連する問題