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

pandas DataFrame が AttributeError をスローするのはなぜですか: 'DataFrame' オブジェクトには属性 'append' がありません。

Barbara Streisand
リリース: 2024-12-07 12:11:12
オリジナル
897 人が閲覧しました

Why Does pandas DataFrame Throw an AttributeError: 'DataFrame' object has no attribute 'append'?

エラー: 'DataFrame' オブジェクトには属性 'append' がありません

DataFrame オブジェクトにディクショナリを追加しようとすると、次のエラーが発生します発生する可能性があります:

AttributeError: 'DataFrame'オブジェクトには属性 'append' がありません

DataFrame には "append" メソッドが存在するように見えますが、この問題は最近削除されたことを理解することで解決できます。

理由削除用

pandas 2.0 では、「append」メソッドは非推奨になり、最終的には問題のある性質のため削除されました。ユーザーは、ループ内で「追加」を使用して Python リストの動作を模倣しようとすることがよくあり、非効率につながりました。 pandas の「append」は元の DataFrame を変更せず、新しい DataFrame を作成するため、挿入を繰り返すと複雑さが O(n) になります。

代替ソリューション

DataFrame に辞書を追加するには、次の 2 つの代替方法が推奨されます:

1. Pandas 連結 (concat)

df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
ログイン後にコピー

このメソッドは、元の DataFrame と新しい行を DataFrame として結合します。

2. Pandas Loc (RangeIndex のみ)

df.loc[len(df)] = new_row # only use with a RangeIndex!
ログイン後にコピー

このメソッドは、DataFrame 内の次に使用可能なインデックスに設定して新しい行を追加します。 DataFrame に RangeIndex がある場合にのみ機能することに注意してください。

複数の行を効果的に追加する

複数の行を追加する必要がある場合は、次のアプローチを検討してください。

  1. 新しい行をlist.
  2. リストから DataFrame を作成します。
  3. 新しい DataFrame を元の DataFrame に連結します。

これにより、反復的な " のオーバーヘッドを回避しながら効率的な追加が保証されます。 「追加」または「連結」操作。

以上がpandas DataFrame が AttributeError をスローするのはなぜですか: 'DataFrame' オブジェクトには属性 'append' がありません。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート