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

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

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

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

Q&A

解決済

1回答

1060閲覧

Kaggleタイタニック号DataFrame True,Falseを1,0に変えたい

umimarine

総合スコア6

Python

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

0グッド

0クリップ

投稿2020/07/05 12:40

前提・実現したいこと

Kaggleのタイタニックのデータセットを使って分析をしているのですが、
'Cabin'カラムのデータの頭文字がそれぞれA,B,C,...,Gかどうかでダミー変数にしました。
'A','B','C',...,'G'カラムが今True,False,0が混在しています。
普段なら、train *= 1とすることでTrueは1に、Falseは0になるはずですが
今回それが起こりません(何も変わらない)。
どうすれば良いでしょうか。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

Python3

1 Survived Pclass Sex Age Fare Embarked man woman child A B C D E F G 20 0 3 male 22.000 7.2500 S 1 0 0 0 0 0 0 0 0 0 31 1 1 female 38.000 71.2833 C 1 1 0 False False True False False False False 42 1 3 female 26.000 7.9250 S 0 0 0 0 0 0 0 0 0 0 53 1 1 female 35.000 53.1000 S 1 1 0 False False True False False False False 64 0 3 male 35.000 8.0500 S 1 0 0 0 0 0 0 0 0 0 7... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 8886 0 2 male 27.000 13.0000 S 0 0 0 0 0 0 0 0 0 0 9887 1 1 female 19.000 30.0000 S 0 0 0 False True False False False False False 10888 0 3 female 29.699 23.4500 S 0 0 0 0 0 0 0 0 0 0 11889 1 1 male 26.000 30.0000 C 1 0 0 False False True False False False False 12890 0 3 male 32.000 7.7500 Q 1 0 0 0 0 0 0 0 0 0 13 14train['A'] = train['A'].astype(int) 15またはtrain['A'] = train['A']*1 16

試したこと

train['A'] = train['A'].astype(int)
またはtrain['A'] = train['A']*1

補足情報(FW/ツールのバージョンなど)

Jupyter notebook

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

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

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

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

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

guest

回答1

0

ベストアンサー

ダミー変数の作り方に問題がある可能性があります。以下の条件では0 or 1が正しく表示されました。

  1. Python 3.7.7
  2. pandas 0.25.3
  3. ダミー変数の作り方 train["Cabin"].str[0].str.get_dummies()

完全なソースは下記の通りです。

python

1import pandas as pd 2pd.options.display.max_rows = 1000 3 4train = pd.read_csv("train.csv", keep_default_na=False) 5train = pd.concat([train, train["Cabin"].str[0].str.get_dummies()], axis=1) 6print(train[["Cabin", "A", "B", "C", "D", "E", "F", "G", "T"]])

結果

terminal

1 Cabin A B C D E F G T 20 0 0 0 0 0 0 0 0 31 C85 0 0 1 0 0 0 0 0 42 0 0 0 0 0 0 0 0 53 C123 0 0 1 0 0 0 0 0 6... 7888 0 0 0 0 0 0 0 0 8889 C148 0 0 1 0 0 0 0 0 9890 0 0 0 0 0 0 0 0

投稿2020/07/05 16:04

yymmt

総合スコア1615

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問