実現したいこと
pandas のバージョンを上げたら動かなくなったコードがあります。
最新のバージョンで動作するようにコードを書き換えたいのですが、うまくいかず困っております。
最終的に、うまくいった場合のようなデータフレームにしたいです。
良い方法があればおしえていただけますでしょうか?
・動作するpandasバージョン
1.5.2
・エラーになるpandasバージョン
2.0.1
下記コードを実行すると、
AttributeError: 'DataFrame' object has no attribute 'append'
上記のエラーになります。
やりたいことは、
空のデータフレームを作って、行方向にデータを入れていく です。
該当のソースコード
python
1import pandas as pd 2#格納用のデータフレーム作成 3col = ['X1','X2'] 4df = pd.DataFrame([],columns=col) 5lst1 = ['A','B','C','D'] 6lst2 = [1,2,3,4] 7ad = 0 8for i,ii in zip(lst1,lst2) : 9 df = df.append({(df.columns[0]):i},ignore_index=True) 10 df[df.columns[1]][ad] = ii 11 ad += 1 12 13#↓エラーにならないバージョンの場合 14df 15 X1 X2 160 A 1 171 B 2 182 C 3 193 D 4
試したこと
エラーになっているのは、dfというデータフレーム にappendが使用できないようですが、
例えば、
dfをnumpy配列等に変換して、後でデータフレームに戻す等すればいいのかとも思いましたが、うまくいかずだったため、良い方法があれば教えていただきたいです。
すいません。
詳細にやったことを書いておりませんで、丸投げの印象をあたえてしまい申し訳ありません。
事前にいろいろやってみたのですが、今後気をつけて投稿します。
> やりたいことは、
> 空のデータフレームを作って、行方向にデータを入れていく です。
append がなくたった経緯は、
https://techtekt.persol-career.co.jp/entry/tech/220523_01
にまとめられていますが、効率や速度を意識するなら、こちらにあるように違うやり方のほうがお勧めです。
資料ありがとうございます。
おすすめはしていませんが、concat を試してみましたが、2.0.1 では、concat も 'DataFrame' object has no attribute 'concat' となってしまいました。
あとは、「DataFrame.from_dictを使ったり」 とありますが、難しそうです。
もう少し勉強します。
回答2件
あなたの回答
tips
プレビュー