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