繁体   English   中英

pd.to_numeric() 返回 TypeError: 'Series' 对象是可变的,因此它们不能被散列

[英]pd.to_numeric() returns TypeError: 'Series' objects are mutable, thus they cannot be hashed

在给定的数据帧上,我根据来自不同列和另一个数据帧的值创建一个新列。

创建新列的代码:

df['normalized_value'] = df.apply(lambda x:
                                      x['value'] / rates_df.loc[rates_df['date'] == x['date'], 'EUR']
                                      if
                                      x['currency'] != 'EUR'
                                      else
                                      x['value'],
                                      axis=1)

创建列后,它看起来像这样:

0        45500
1        32500
2        25000
3        33000
5        19000
         ...  
61790    60000
61791    57000
61792    50999
61793    66500
61794    67000
Name: normalized_value, Length: 59951, dtype: object

然后我尝试使用以下代码将其转换为浮点型:

df['normalized_value'] = pd.to_numeric(df['normalized_price'])

返回以下错误:

TypeError: 'Series' objects are mutable, thus they cannot be hashed

我在这里做错了什么?

经过进一步调查,发现问题出在应用程序的底层代码中。

外部数据帧 ( rates_df ) 不包含一些必需的数据,并且由于某种原因它返回一个字符串而不是抛出错误。 这导致df['normalized_value']一些值成为包含它期望值的实际类型的实际字符串。

一旦rates_df的问题得到解决,转换就毫无问题地进行了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM