我有一个数据,其中一列是名字。我想通过gender-guesser库传递名字,以获得对名字性别的最佳猜测。但是,当我试图创建一个新的“Gender”列并将“First Name”列中的数据传递给:
df_names['Gender'] = gender.Detector().get_gender(df_names['First Name'])
我知道错误了
^{pr2}$我认为这与性别猜测者在幕后的所作所为有关,但我不能百分之百肯定。我得到了性别猜测者和熊猫的回溯。我可以将字符串传递给猜测者,并获得无问题的返回。我还可以编写自己的超级简单函数,将“名字”数据与另一个字符串连接起来,并获得有效的输出;例如:
def concat(x):
return x+" something more"
df_names['More'] = concat(df_names['First Name'])
这也和预期的一样,用匹配的内容创建一个新的列。在
我也能得到一个单一的,正确的,使用iloc返回。我已经可以让for循环工作,但它需要太长的时间来实现。在
从来没用过性别检测仪,但我想这应该行得通
看起来您遇到了
get_gender
方法的实现细节,它很可能试图使用First Name
作为字典的键,这将导致python调用first name
对象的__hash__
方法并抛出错误(可以看到in the code)。在正如您已经在
concat
方法中观察到的,解决这个问题的关键可能是将first name
对象转换为字符串:相关问题 更多 >
编程相关推荐