問題解決能力が必要です。
データはしっかり読み取れているか?
私の環境では次のようになりました。
Python
1>>> df = pd.read_csv('user.csv')
2>>> df
3 Tom America
40 Tom Calfornia
51 Tom San Diego
62 Tom 2-3-40
73 Juddy Austoraria
84 Juddy New South Wales
95 Juddy Sydney
106 Juddy Ryde city
117 Juddy 1-60
Tom と America が列方向のタグになってしまっています。
ヘッダーが無いことを示さないとダメです。
Python
1>>> df = pd.read_csv('user.csv', header=None)
2>>> df
3 0 1
40 Tom America
51 Tom Calfornia
62 Tom San Diego
73 Tom 2-3-40
84 Juddy Austoraria
95 Juddy New South Wales
106 Juddy Sydney
117 Juddy Ryde city
128 Juddy 1-60
ループはしっかり回っているか?
覗いてみましょう。
Python
1>>> for name, address in df.iterrows():
2... print(name, address)
3...
40 0 Tom
51 America
6Name: 0, dtype: object
71 0 Tom
81 Calfornia
9Name: 1, dtype: object
102 0 Tom
111 San Diego
12Name: 2, dtype: object
133 0 Tom
141 2-3-40
15Name: 3, dtype: object
164 0 Juddy
171 Austoraria
18Name: 4, dtype: object
195 0 Juddy
201 New South Wales
21Name: 5, dtype: object
226 0 Juddy
231 Sydney
24Name: 6, dtype: object
257 0 Juddy
261 Ryde city
27Name: 7, dtype: object
288 0 Juddy
291 1-60
30Name: 8, dtype: object
使い方を誤っているようです。
『pandas iterrow』とググると、次のようなページに辿り着きます。
note.nkmk.me - pandas.DataFrameのforループ処理(イテレーション)
DataFrame.iterrows()メソッド
iterrows()メソッドを使うと、1行ずつ、インデックス名(行名)とその行のデータ(pandas.Series型)のタプル(index, Series)を取得できる。
タプルの第一要素はindexだそうです。
というわけで、次のように受け取れば良いことに気付きます。
Python
1for index, series in df.iterrows():
2 name, address = series
3 ...
あるいは
Python
1for index, (name, address) in df.iterrows():
2 ...
このように、どこが間違っているのか探る能力が非常に重要です。
America Calfornia San Diego 2-3-40
と表示するためには、str.joinを使いましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/04 09:11