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

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

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

Kaggleは、機械学習モデルを構築するコンペティションのプラットフォームおよびその運営企業を指します。企業や政府といった組織とデータサイエンティスト・機械学習エンジニアを繋げるプラットフォームであり、単純なマッチングではなくコンペティションが特徴です。

Python

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

Q&A

解決済

1回答

891閲覧

データフレームに新しくカラムをつくり、辞書の値を代入したい

kodenkoden

総合スコア15

Kaggle

Kaggleは、機械学習モデルを構築するコンペティションのプラットフォームおよびその運営企業を指します。企業や政府といった組織とデータサイエンティスト・機械学習エンジニアを繋げるプラットフォームであり、単純なマッチングではなくコンペティションが特徴です。

Python

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

0グッド

0クリップ

投稿2020/01/09 15:30

KaggleのTitanicで新しくカラムをつくり、辞書の値を代入したいと考えています、エラーが出てしまいます。

作業手順
①変数「Embarked」の 生存率を抽出
Sur_rate=({'C':93/(75+93),'Q':30/(47+30),'S':217/(427+217)})
print(Sur_rate)

⇒{'C': 0.5535714285714286, 'Q': 0.38961038961038963, 'S': 0.33695652173913043}

②①の結果の値を抽出
Embarked_Sur=Sur_rate.values()
print(Embarked_Sur)

⇒dict_values([0.5535714285714286, 0.38961038961038963, 0.33695652173913043])

③②の値をあらたにカラムを作り、代入
train_df=train_df.join(Embarked_Sur)

⇒AttributeError: 'float' object has no attribute 'index'

どうすれば、エラーを解消できるでしょうか?

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

今ひとつ理解できていないのですが..
やりたいことは、元の train_dfEmbarked列の値に応じて、Sur_rateの値を train_dfに入力したいと言うことでしょうか?

であれば、Series.map() をつかて

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.map.html

Python

1import pandas as pd 2 3train_df = pd.read_csv('train.csv') 4 5Sur_rate=({'C':93/(75+93),'Q':30/(47+30),'S':217/(427+217)}) 6 7train_df['Embarked_Sur'] = train_df['Embarked'].map(Sur_rate) 8#train_df['Embarked_Sur2'] = train_df['Embarked'].transform(Sur_rate) 9print(train_df.head()) 10# PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked Embarked_Sur 11#0 1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S 0.336957 12#1 2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C 0.553571 13#2 3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S 0.336957 14#3 4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S 0.336957 15#4 5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S 0.336957

のようにできるかと思います。

投稿2020/01/09 23:42

magichan

総合スコア15898

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

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

kodenkoden

2020/01/12 12:03

調べてもなかなか見つけられませんでした。 わかりやすい書き方で、大変助かりました。
kodenkoden

2020/01/12 12:03

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問