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

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

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

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

Q&A

解決済

1回答

141閲覧

TypeErrorが解消できません

nouken

総合スコア369

Python

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

0グッド

0クリップ

投稿2018/06/30 07:57

お世話になっております。
おそらくかなり基本的なミスだと思うのですが、KaggleのTaitanicのデータセットでCabinのカラムに対して、先頭のアルファベットのみ取得しようと関数を作りapplyしましたが

python

1def cabin_class(name): 2 name=name.split()[0] 3 if name=='NaN': 4 return 'NaN' 5 else: 6 L=[] 7 for char in name: 8 L.append(char) 9 return (L[0])

4 else:
5 L=[]
----> 6 for char in name:
7 L.append(char)
8 return (L[0])

TypeError: 'float' object is not iterable

のエラーが出ました。Cabinの列はNaN又はC85などのキャビン名なのでnameがNaNの場合はelseに入らないと思うのですが、何か勘違いでしょうか?

ちなみにCabinカラムは以下のようです。
0 NaN
1 C85
2 NaN
3 C123
4 NaN
5 NaN
6 E46
7 NaN
8 NaN
9 NaN
10 G6
11 C103
12 NaN
13 NaN
14 NaN
15 NaN
16 NaN
17 NaN
18 NaN
19 NaN
20 NaN
21 D56
22 NaN
23 A6
24 NaN
25 NaN
26 NaN
27 C23 C25 C27
28 NaN
29 NaN
...
861 NaN
862 D17
863 NaN
864 NaN
865 NaN
866 NaN
867 A24
868 NaN
869 NaN
870 NaN
871 D35
872 B51 B53 B55
873 NaN
874 NaN
875 NaN
876 NaN
877 NaN
878 NaN
879 C50
880 NaN
881 NaN
882 NaN
883 NaN
884 NaN
885 NaN
886 NaN
887 B42
888 NaN
889 C148
890 NaN
Name: Cabin, Length: 891, dtype: object

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

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

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

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

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

guest

回答1

0

ベストアンサー

TypeError: 'float' object is not iterable

name の値が float 型になっているようです。
ここに記載されているコードが全てなのですか?

投稿2018/06/30 08:03

mather

総合スコア6753

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

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

nouken

2018/06/30 08:07

typeを確認したところ、NaNがfloatとなっているので、nameにfloatが入った場合はfloat になると思います。ただ、NaNはifで引っかかるはずで困っております
mather

2018/06/30 08:26

name.split()[0] とやっているのでnameが文字列かと思ってましたが、何かその後に変換が含まれてたりするのかな、と思いまして。 NaNの判定なら isnan を使ったほうがいいと思います。 https://docs.python.jp/3/library/math.html#math.isnan
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問