ここでの非常に奇妙なバグ:パンダを使用して複数のデータフレームをマージしています。マージの一環として、reset_indexを数回呼び出す必要があります。しかし、そうすると、reset_indexの2回目または3回目の使用で予期せずクラッシュします。
エラーを再現するための最小限のコードは次のとおりです。
import pandas
A = pandas.DataFrame({
'val' : ['aaaaa', 'acaca', 'ddddd', 'zzzzz'],
'extra' : range(10,14),
})
A = A.reset_index()
A = A.reset_index()
A = A.reset_index()
トレースバックの関連部分は次のとおりです。
....
A = A.reset_index()
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 2393, in reset_index
new_obj.insert(0, name, _maybe_cast(self.index.values))
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 1787, in insert
self._data.insert(loc, column, value)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/internals.py", line 893, in insert
raise Exception('cannot insert %s, already exists' % item)
Exception: cannot insert level_0, already exists
ここで何が問題になっているのでしょうか。どうすれば回避できますか?