状況
pandas 2.2 の環境で、AI アシスタントが書いた行の追加のコードを動かすと AttributeError: 'DataFrame' object has no attribute 'append' が出た。
原因として最も考えられるのは?
df = df.append(row, ignore_index=True)正答
- ignore_index=True が原因なので、False にすれば動く
- pandas のインストールが壊れているので、入れ直せば動く
- AI が古い版の書き方を示した。append は 2.0 で削除された
- row が辞書なのが原因で、リストにすれば append が使える
解説
DataFrame.append は pandas 1.4 で非推奨になり、2.0 で削除された。代わりに pd.concat を使う。AI は学習したコードに多い古い書き方を、今の版でも動くかのように出すことがある。エラーが「属性が無い」と言っているときは、引数ではなくメソッドそのものが無いことを疑い、使っている版の公式ドキュメントや変更履歴で確かめる。ignore_index や row の型を変えても、メソッドが無いことは変わらない。インストールが壊れていれば import の時点で別のエラーになることが多い。
この問題を含む AI の出力チェック のテストを制限時間つきで解く
AI の出力チェッククイズへ