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

IT

背景

データ分析コンペで、複数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」を追加。

自分のライフスタイルに合わせて、お得に学ぼう。いつでも、どこでも学べる。 対象コースが{¥1,800から。

コメント

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