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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

7047閲覧

PythonでのPandasを用いたfor文でのエラー

gymgym

総合スコア97

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2018/01/07 17:08

Pandasを用いてfor文を使用したところ、
以下のコードは実行されるのに対し、

Python

1list_a = [a1, a2, a3, a4] 2a1, a2, a3, a4 = [fft(i.iloc[:,2], len(i.iloc[:,2]), 125) for i in list_a]

以下のコードを実行すると

Python

1for j in range(1, 9): 2 list_a = [a1, a2, a3, a4] 3 a1, a2, a3, a4 = [fft(i.iloc[:,j-1], len(i.iloc[:,j-1]), 125) for i in list_a]
AttributeError: 'list' object has no attribute 'iloc'

このようなエラーが出てしまいます。

原因はどのように考えられるでしょうか。
よろしくお願い致します。

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

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

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

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

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

guest

回答2

0

エラーメッセージの内容だと、for i in list_ailistになっています。
単体だとうまくいっているようなのでfftの戻り値を代入したa1, a2, a3, a4が想定している型になっておらず、forループの2周目以降でコケているのではないでしょうか?

投稿2018/01/08 02:15

diningyo

総合スコア379

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

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

gymgym

2018/01/08 05:55

t_masaさんのご指摘どおりでした。 変数名を変えると実行できました。
guest

0

ベストアンサー

ソースコードを見る限り、 a1,a2,a3,a4 には pandas.DataFrame型のデータが入っていることが想定されてるようです。

で、エラーの原因は、ループを一巡すると a1,a2,a3,a4
[fft(i.iloc[:,j-1], len(i.iloc[:,j-1])) for i in list_a]
の結果として、pandas.DataFrame型でないデータ(List型のデータ?)が上書きされるのが原因かと思われます。

a1~a4の値は ftp() の戻り値となります

投稿2018/01/08 02:29

magichan

総合スコア15898

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

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

gymgym

2018/01/08 05:56

回答ありがとうございました。 magichanさんのご指摘を参考にすることでうまく実行できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問