ホームページ > バックエンド開発 > Python チュートリアル > 「DataFrame.append」が非推奨になったのはなぜですか? Pandas DataFrame に行を追加するにはどうすればよいですか?

「DataFrame.append」が非推奨になったのはなぜですか? Pandas DataFrame に行を追加するにはどうすればよいですか?

DDD
リリース: 2024-12-05 21:38:15
オリジナル
827 人が閲覧しました

Why is `DataFrame.append` Deprecated and How Do I Add Rows to a Pandas DataFrame?

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

DataFrame オブジェクトに辞書を追加しようとすると、次のような問題が発生する場合があります。エラー メッセージ「AttributeError: 'DataFrame' オブジェクトには属性 'append' がありません。」 DataFrame には以前は append メソッドが装備されていましたが、pandas バージョン 2.0 では削除されました。

解決策

DataFrame にデータを追加するには、代わりに concat メソッドを使用します。

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

代替解決策

インデックスが RangeIndex の場合は、loc 属性も使用できます:

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

変更の理由

append メソッドは、特に繰り返した場合に非効率的な操作であるため、削除されました。インプレースで動作する list.append とは異なり、DataFrame の append は新しい DataFrame を作成します。これにより、繰り返し挿入操作の時間計算量が 2 倍になりました。

繰り返し挿入のベスト プラクティス

追加または連結を繰り返し使用する代わりに、新しい項目をリストに収集して変換します。ループの終わりにそれらを 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])
ログイン後にコピー

以上が「DataFrame.append」が非推奨になったのはなぜですか? Pandas DataFrame に行を追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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