使用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/

10-12 23:22