ホームページ >バックエンド開発 >Python チュートリアル >Pandas が「'DataFrame' オブジェクトには属性 'append' がありません」エラーをスローするのはなぜですか?
問題の説明:
DataFrame オブジェクトに辞書を追加すると、「'DataFrame' オブジェクトには属性 'append' がありません」というエラーが発生します。 DataFrame に「追加」メソッドがあることが期待されているにもかかわらず、エラーが継続します。
コード サンプル:
df = pd.DataFrame(df).append(new_row, ignore_index=True)
エラーの理由:
pandas バージョン 2.0 では、append メソッドが削除されました。ほとんどのユースケースでは concat メソッドに置き換えられました。
Concat を使用した代替アプローチ:
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
Loc を使用した代替アプローチ (for RangeIndex のみ):
DataFrame のインデックスがRangeIndex、loc メソッドを使用できます。
df.loc[len(df)] = new_row
Append が削除された理由:
Append の削除は、新しいユーザーによるメソッドの頻繁な誤用によって促されました。パンダユーザー。 Python リストの append メソッドとは異なり、pandas append は既存の DataFrame を変更しません。代わりに新しい DataFrame が作成されるため、繰り返し実行すると操作が非効率になります。
繰り返し挿入のベスト プラクティス:
複数の挿入が必要な場合は、それらを収集する必要があります。リストに含めて最後に DataFrame に変換し、元の DataFrame と連結できます:
lst = [] for new_row in items_generation_logic: lst.append(new_row) # create extension df_extended = pd.DataFrame(lst, columns=['A', 'B', 'C']) # concatenate to original out = pd.concat([df, df_extended])
以上がPandas が「'DataFrame' オブジェクトには属性 'append' がありません」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。