#python #pandas #dataframe #dictionary
#python #pandas #фрейм данных #словарь
Вопрос:
Я занят с Titanic kaggle и хочу упростить и питонизировать этот фрагмент кода:
allData = [trainData, testData]
commonTitles = {'Mlle' : 'Miss', 'Ms' : 'Miss', 'Mme' : 'Mrs', all others : 'Rare'}
for dataset in allData:
dataset['Title'].map(commonTitles)
Как мне указать все остальные части?
Кроме того, будет ли команда map пропускать здесь ‘Miss’ и ‘Mrs’ или она изменит их на ‘Rare’?
Спасибо
Комментарии:
1. вы пытались запустить это? это даже недопустимый python
2. сначала прочитайте это docs.python.org/3.7/tutorial/datastructures.html#dictionaries и поймите это, затем попробуйте провести рефакторинг чьего-либо кода.
3. Вы должны указать, пытаетесь ли вы выполнить перенос с другого языка или другого псевдокода — некоторые люди критикуют или голосуют против, потому что это нелегальный Python.
4. Но код, отредактированный aka () вместо {}, является кодом Python. Это была простая опечатка…
Ответ №1:
Сначала измените словарь, удалив Rare
и добавив 2 элемента с одинаковым ключом и значением, чтобы избежать их замены на Rare
, добавьте Series.fillna
для замены значения, не совпадающие, и, поскольку список циклов фрейма данных создает другой:
commonTitles = {'Mlle' : 'Miss',
'Ms' : 'Miss',
'Miss':'Miss',
'Mme' : 'Mrs',
'Mrs': 'Mrs'}
dfs = []
for dataset in allData:
dataset['Title' ] = dataset['Title' ].map(commonTitles).fillna('Rare')
dfs.append(dataset)