ホームページ >バックエンド開発 >Python チュートリアル >Pandas が「'DataFrame' オブジェクトには属性 'append' がありません」エラーをスローするのはなぜですか?

Pandas が「'DataFrame' オブジェクトには属性 'append' がありません」エラーをスローするのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-02 15:40:10629ブラウズ

Why Does Pandas Throw a

エラー: '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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。