Pandasで「ValueError: cannot reindex on an axis with duplicate labels」の対処法

背景

データ分析コンペで、複数CSVファイルを統合しデータクレンジングをしている際に発生しました。

あくまで一例のレベルですが、原因の特定と対処に時間がかかったため、同じ原因でエラーがあった場合の参考になるのではないかと考えて、記載します。

特に、データ分析の初心者ではありがちだと思いますので、参考になれば幸いです。

原因

下記のコードで複数のCSVファイルを統合している際に、インデックスの再作成をしていなかったので、インデックスが重複していた状態でした。

df = pd.concat(data_list, axis=0, sort=False)

この状態で、下記のコマンドを実行した際にエラーが発生しました。

df.loc[df['列名A']=='X','列名B'] = df['列名C'] + 3

⇒列名A=’X’の行に対して、列名C+3を列名Bに代入。

解決法

複数のCSVファイルを統合する際に、インデックスの再作成をすることで解決しました。

df = pd.concat(data_list, axis=0, sort=False, ignore_index=True)

⇒「ignore_index=True」を追加。

何かのご参考になれば、幸いです。

コメント

タイトルとURLをコピーしました