使用gender_guesser.detector包后,我得到了新的df的“ gender”专栏,总结如下。我想将“ mostly_female”更改为“ female”;并将“ mostly_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”,“ Daeron”,“ Dafyn”,“ Dagon”,“ Dake”,“ Danwell” ,“女儿”,“黛琳娜”,“迪肯”,“唐纳尔”,“哈伦”,“哈罗德”,“哈温”,“霍斯特弗罗斯特”,“胡克”,“热”,“母亲”,“汉弗莱”,“ Humfrey”,“ Jaremy”,“ Jeor”,“ Jeyne”,“ Jeyne”,“ Donnel”,“ Jeyne”,“ Jeyne”,“ Jeyne”,“ Jhaqo”,“ Jhiqui”,“ Aegon”,“ Aegon” ,“ Aerion”,“ Aladale”,“ Alester”,“ Bannen”,“ Belandra”,“ Belwas”,“ Benjen”,“ Benjen”,“ Beric”,“ Black”,“ Bore”
最佳答案
您可以通过为每个所需的键传递替换值来使用map
方法。
df['gender'] = df['gender'].map({
'mostly_female': 'female',
'mostly_male': 'male',
'andy': 'male',
'unknown': np.random.choice(['female', 'male'], size=1)
})
关于python - 如何创建循环以更正数据框中的性别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59912299/