1

私は初めてなpandasので、明らかなことを見落としている場合はご容赦ください。ただし、以前の質問では答えが見つからないようです。

区切り文字として任意の数の空白を持つテーブルを Pandas にインポートしようとしています。データの例を次に示します。

*PRODUCT : Backscatter Ratio - 1064.0 nm ^

Altitude                  2010/03/23 17:01:00       2010/03/23 17:03:00       ...

1.50                      1                         1                         ...

4.50                      1                         1                         ...

.                         .                         .

.                         .                         .

.                         .                         .*

テーブルの実際のサイズは、1310 列 x 6009 行です。将来これらのテーブルの間隔が変更される可能性があるため、必ずしも固定幅パーサーを使用したくないので、次を使用しました。

df = pandas.io.parsers.read_csv(filepath,sep='s*',header=2,index_col=None, skiprows=2)

これを行うと、次のエラーが表示されます。

ファイル "C:\Python27\lib\site-packages\pandas\io\parsers.py"、187 行目、read_csv の return _read(TextParser, filepath_or_buffer, kwds)
ファイル "C:\Python27\lib\site-packages\pandas \io\parsers.py"、160 行目、_read return parser.get_chunk()
ファイル "C:\Python27\lib\site-packages\pandas\io\parsers.py"、613 行目、get_chunk で Exception(err_msg) を発生させる)

例外: インデックス (列 0) の値が重複しています [nan]

インデックス列を None に設定したことに注意してください。最初の列をインデックス列として使用してこれを試しましたが、同じエラーが発生しました。データ セットに空の行がなく、最初の列に値が重複していません。

4

1 に答える 1

1

問題は、セパレータとして任意の数の空白を使用すると、各行の列数が異なることです。

この場合、ヘッダーのこのフィールドは2010/03/23 17:01:002 つの列に変換されます。ヘッダーとデータで列数が異なるため、pandas は最初の列にインデックスを付ける必要があると想定します。これがエラーが発生する理由です。これを修正するには、一連の空白を区切り文字として指定してみてください。コンマやタブなどを使用して、フィールドの境界を明確にすることもできます。

于 2012-10-18T18:21:53.973 に答える