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

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

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

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

Q&A

解決済

2回答

408閲覧

titanicデータの16歳未満の性別を「子供」に設定する

takapppp

総合スコア3

Python

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

0グッド

0クリップ

投稿2022/02/22 09:31

Python初心者です。
Pandasで、titanicデータの前処理をしています。

"Age"が16歳未満の"Sex"を「Children」に変えたいです。
(16歳未満は男性・女性関係なく子供として扱いたいため)

下記for 文を試しましたが、エラーが出ていますが何がだめなのかわからず困っています。
(ここではデータフレームの名前をdfとしています)

for i in df: if df["Age"]<16: df["Sex"]="Children"

エラー文は、
The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

となっています。

初歩的な質問ですみません。よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

maskを使います。

Python

1>>> print(df) 2 name age Sex 30 A 25 male 41 B 13 male 52 C 18 female 6>>> df['Sex'] = df['Sex'].mask(df['age']<16, 'Children') 7>>> print(df) 8 name age Sex 90 A 25 male 101 B 13 Children 112 C 18 female

投稿2022/02/22 09:49

ppaul

総合スコア24666

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

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

takapppp

2022/02/22 10:38

ppaul様 早速のご回答有難うございました。無事実行ができました。 mask関数は初めて知りました。とても便利ですので使い慣れたいと思います。
guest

0

別解として(loc() を使用)。

python

1>>> import pandas as pd 2>>> df = pd.read_csv('titanic.csv') 3# 16歳未満の人数 4>>> (df['Age'] < 16).sum() 583 6# 性別 7>>> df['Sex'].unique() 8array(['male', 'female'], dtype=object) 9 10# 置換 11>>> df.loc[df['Age'] < 16, 'Sex'] = 'Children' 12 13# 確認 14>>> df['Sex'].unique() 15array(['male', 'female', 'Children'], dtype=object) 16>>> (df['Sex'] == 'Children').sum() 1783

投稿2022/02/22 15:34

melian

総合スコア19769

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問