質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

1069閲覧

python 行データを追加したいのです。参考書に沿って入力しましたが、エラーが発生してしまいます。

kdmaster

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/04/01 09:59

実現したいこと

エラーを起こさずに実行する方法を教えていただきたいです。

発生している問題・分からないこと

dfA = pd.read_csv("test.csv", index_col=0)

dfB = pd.DataFrame()
dfB = dfB.append(dfA.iloc[0])
dfB

と入力したところ、以下のエラーが発生してしまいます。


AttributeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_3488\188244080.py in ?()
1 dfA = pd.read_csv("test.csv", index_col=0)
2
3 dfB = pd.DataFrame()
----> 4 dfB = dfB.append(dfA.iloc[0])
5 dfB

C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\generic.py in ?(self, name)
6200 and name not in self._accessors
6201 and self._info_axis._can_hold_identifiers_and_holds_name(name)
6202 ):
6203 return self[name]
-> 6204 return object.getattribute(self, name)

AttributeError: 'DataFrame' object has no attribute 'append'

該当のソースコード

特になし

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

同上

AttributeError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_3488\188244080.py in ?()
1 dfA = pd.read_csv("test.csv", index_col=0)
2
3 dfB = pd.DataFrame()
----> 4 dfB = dfB.append(dfA.iloc[0])
5 dfB

C:\ProgramData\anaconda3\Lib\site-packages\pandas\core\generic.py in ?(self, name)
6200 and name not in self._accessors
6201 and self._info_axis._can_hold_identifiers_and_holds_name(name)
6202 ):
6203 return self[name]
-> 6204 return object.getattribute(self, name)

AttributeError: 'DataFrame' object has no attribute 'append'

補足

書籍『Python2年生データ分析のしくみ』に取り組んでいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2024/04/01 10:03

pandas.DataFrame.append メソッドは Pandas 2.0 で削除されましたので、concat() を使って書き換える必要があります。
riko111

2024/04/01 10:10

一番最後の行の「AttributeError: 'DataFrame' object has no attribute 'append」が起こっているエラーですが、英語の意味は調べましたか? 使用している環境、PythonやPandasのバージョンを明記してください。
meg_

2024/04/01 10:44

> 参考書に沿って入力しましたが、エラーが発生してしまいます。 その参考書と同じ結果を得たいのならモジュールのバージョン参考書に合わせてください。
guest

回答2

0

エラーの原因と対策については既に示されているので具体的な記述例を下記に示します。なお,環境は「python 3.11.8, pandas 2.2.1」です。

pandas.concat() を用い,空のデータフレーム dfBdfA の0行目のみを抽出した(シリーズの dfA.iloc[0] ではなく)データフレームの dfA.iloc[0:1] を結合します。

Python

1import pandas as pd 2 3dfA = pd.read_csv("test.csv", index_col=0) 4print(dfA) 5# A B C D 6# a 1 2 3 4 7# b 5 6 7 8 8# c 9 10 11 12 9 10dfB = pd.DataFrame() 11dfB = pd.concat([dfB, dfA.iloc[0:1]]) 12print(dfB) 13# A B C D 14# a 1 2 3 4

投稿2024/04/02 14:52

little_street

総合スコア453

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

その参考書が使用しているpandasと、テスト環境に入れたpandasはバージョンが違うのでは?ちなみに、pandas2以降は、上記の記述はエラーを返すようです。concatで代用できるようです(要はpandasのデータフレーム処理用メソッドと通常のオブジェクト代入のappendとごっちゃになるから廃止したらしい)。

3.pandas 2.0以降のエラーについて

海外が作ったライブラリは便利さを求める反面、どんどんバージョンアップするとともに、過去の仕様を「なかったことにしてしまう」(後方互換性なし)ので注意が必要です。

投稿2024/04/02 02:09

編集2024/04/02 02:14
FKM

総合スコア3660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問