我在python中遇到一个错误“cannotcompare types'ndarray(dtype=object)”和“str”

2024-04-24 20:58:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv数据集和一个由分类器创建的字典。有必要将键值替换为键(这里是一个example)。一开始我试着通过这样的代码来做

for key, value in xxx.items(): 
lime_df.replace(value, key, inplace = True)

但替换工作拖了好几天。现在我使用以下代码:

lime_df.replace(mapping,inplace = True)

但我有个错误:

TypeError: Cannot compare types 'ndarray(dtype=object)' and 'str'

这就是字典的样子:

{-5.486750964678322e-08: '2', 1.187718366754473e-17: '3', -7.059511863971579e-10: '10',
 -3.0349327687745536e+16: '18', -8.017016298890468e-18: '15', 107.15808868408203: '1',
 -8.300757059487296e-08: '5', -2.1828310439085026e+32: '13', -1.3752891451707128e+38: '8',
 5.882867218031023e-22: '14', -1.0941715971078361e+23: '17', -8.360684200807262e-18: '11',
 -1.0765597196911002e+36: '4', -1.5831559552949374e+38: '7', -1.5324417530020214e-27: '9', }

表中的所有值都是分类的,因此对于分类器,我使用

lime_df.astype(str) 

如果你调用lime_df.dtypes,他写道所有的列都是object类型。你知道吗

Object types screenshot

帮助修复错误并解决问题!你知道吗


Tags: csvkey代码truedf字典object分类器