我想附加一些字符串并将其添加到dataframe中的新列中。第一个被截取的代码可以工作,当我尝试第二个代码时,它失败,出现以下错误:
numpy.core._exceptions.UFuncTypeError: ufunc 'add' did not contain a loop with signature matching types (dtype('<U21'), dtype('<U21')) -> dtype('<U21')
唯一的区别是第二个代码段包含另一个字符串_
是否有人对发生此错误的原因提出建议
第一个代码被截断:
df["identifier"]=df.index.get_level_values(0).values.astype(str) + df["mother tongue iso636-3"].astype(str)+ '_' + df["country iso3166-2"].astype(str)
第二个代码被截断:
df["identifier"]=df.index.get_level_values(0).values.astype(str) + '_' + df["mother tongue iso636-3"].astype(str)+ '_' + df["country iso3166-2"].astype(str)
在添加字符串浇铸系列时,我也遇到了类似的错误
此lambda解决方案将稍微慢一点,但将确保添加的值为STR类型
出现异常的问题是索引函数
如果首先将其作为列添加到数据帧,然后使用列而不是函数,则问题将不再发生:
我很惊讶你的第一个案子成功了。但如果您提供一个简单版本的数据框架,可能会有所帮助
既然你没有那样做,我就得编一个:(
首先看一下
index
:未为numpy字符串定义
+/add
现在查看字符串列:
将该数组转换为numpy str会产生相同的错误:
这就是为什么我想知道为什么你的第一个案子会成功
如果我将对象数据类型字符串保持原样:
numpy
将index
数组转换为对象数据类型(公共数据类型),并逐元素执行+
,对于python字符串来说,这是串联把这个想法用一个“u”来表示:
相关问题 更多 >
编程相关推荐