[英]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.