如何创建循环以更正datatframe中的性别

2024-05-23 21:06:20 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用了gender_guesser.detector包之后,我得到了df的新专栏“gender”,总结如下。我想把“大部分女性”改为“女性”;并将“Maly_male”和“andy”更改为“male”;我编写了如下代码,但产生了错误。如何修复它?非常感谢! 未知1125 男321 女225 大部分为男性,29岁 大部分为女性26岁 安迪15

随机输入 将numpy作为np导入

对于df.iterrows()中的索引g:

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:序列的真值不明确。请使用a.empty、a.bool()、a.item()、a.any()或a.all()

另外,有没有建议如何根据“名字”将“未知”改为“男性”和“女性”

我真的需要改变“未知”“男女分开,但不知道如何处理1130观察。这里有这么多名字……”Cyrenna、Dacks、Daella、Daella、Daemon、Daeron、Dayon、Dagon、Dake、Danwell、女儿、Delena、Dickon、Donel、Harren、Harrold、Harwyn、Hoke、Hot、Hother、Humfrey、Humfrey、Jaremy、Jeor、Jeyne、Donnel、Jeyne、Jeyne、Jeyne、Jeyne、Jeyne、Jeyne、Jhaqo、Jhiquiki、Aegon、Aegon、,“Aerion”、“Aladale”、“Alester”、“Bannen”、“Belandra”、“Belwas”、“Benjen”、“Benjen”、“Beric”、“Black”、“Bore”


Tags: dfindexnp名字genderlocmalefemale
1条回答
网友
1楼 · 发布于 2024-05-23 21:06:20

您可以使用map方法,为所需的每个键传递替换值

df['gender'] = df['gender'].map({
      'mostly_female': 'female', 
      'mostly_male': 'male', 
      'andy': 'male',
      'unknown': np.random.choice(['female', 'male'], size=1)
})

相关问题 更多 >