Как создать l oop, чтобы исправить пол в datatframe - PullRequest
1 голос
/ 25 января 2020

Я получил новый столбец «пол» df, суммированный, как показано ниже, после использования пакета gend_guesser.detector. Я хочу изменить «главным образом женское» на «женское»; и заменим «главным образом мужское» & «andy» на «мужское»; я написал коды, как показано ниже, но сгенерировал ошибку. Как это исправить? Большое спасибо! неизвестно 1125 мужской 321 женский 225 главным образом мужской_ 29 29 преимущественно_ женский 26 andy 15

импортировать случайный импорт numpy как np

для индекса, g в df.iterrows ():

if g == 'mostly_female':
    df.loc[index, 'gender'] = 'female'

elif g == 'mostly_male':
    df.loc[index, 'gender'] = 'male' 

elif g == 'andy':
    df.loc[index, 'gender'] = 'male'

elif g  == 'unknown':
    df.loc[index, 'gender'] = np.random.choice(['female', 'male'], size=1)

else: 
    print('error')

ValueError: Истинное значение Series является неоднозначным. Используйте a.empty , a.bool (), a.item (), a.any () или a.all ()

Кроме того, любое предложение о том, как заменить «неизвестный» на «мужской» и «женский» согласно на «имя»?

Мне действительно нужно поменять «неизвестно» на мужчину / женщину отдельно, но не знаю, как справиться с наблюдением 1130. Здесь так много имен ... «Кирена», «Дакс» , 'Daella', 'Daella', 'Daemon', 'Daeron', 'Daeron', 'Dafyn', 'Dagon', 'Dake', 'Danwell', 'Daughter', 'Delena', 'Dickon', ' Донель »,« Харрен »,« Харролд »,« Харвин »,« Иней »,« Хоук »,« Горячий »,« Хотер »,« Хамфри »,« Хамфри »,« Джереми »,« Джор »,« Джейн » , 'Jeyne', 'Donnel', 'Jeyne', 'Jeyne', 'Jeyne', 'Jhaqo', 'Jhiqui', 'Aegon', «Aegon», «Aerion», «Aladale», «Alester», «Bannen», «Belandra», «Belwas», «Benjen», «Benjen», «Beri c», «Black», «Bore»

1 Ответ

2 голосов
/ 25 января 2020

Вы можете использовать метод map, передавая заменяющее значение для каждого ключа, который вам нужен.

df['gender'] = df['gender'].map({
      'mostly_female': 'female', 
      'mostly_male': 'male', 
      'andy': 'male',
      'unknown': np.random.choice(['female', 'male'], size=1)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...