ホームページ > バックエンド開発 > Python チュートリアル > Pandas で「AttributeError: 'DataFrame' object has noattribute 'append'」を修正する方法は?

Pandas で「AttributeError: 'DataFrame' object has noattribute 'append'」を修正する方法は?

Linda Hamilton
リリース: 2024-12-25 16:30:13
オリジナル
141 人が閲覧しました

How to Fix the

AttributeError: 'DataFrame' オブジェクトに 'Append' メソッドがありません

DataFrame に辞書を組み込もうとすると、「 AttributeError: 'DataFrame' オブジェクトには属性 'append' がありません」エラー。 DataFrame には「append」メソッドがありますが、pandas 2.0 では削除されました。

解決策:

この問題を修正するには、「concat」メソッドをreplace:

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

あるいは、DataFrame インデックスが RangeIndex の場合、 「loc」メソッドを使用する可能性があります:

df.loc[len(df)] = new_row # Only applicable with RangeIndex
ログイン後にコピー

削除の根拠:

「append」メソッドの削除は、繰り返し挿入シナリオにおける非効率性によって動機付けられました。 。インプレースで動作する Python の「list.append」関数とは異なり、pandas の「append」メソッドは新しい DataFrame を構築します。この違いにより、パンダの「追加」の時間計算量は O(n) となり、非効率になります。

代替アプローチ:

繰り返し追加する必要がある場合項目では、「append」または「concat」を複数回使用しないでください。代わりに、新しい行をリストに蓄積し、ループが完了したらそれを 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 で「AttributeError: 'DataFrame' object has noattribute 'append'」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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