Pandas 我相信,";项目“tmp”和“dic2”;是dict,那么为什么要报告这个错误呢?

Pandas 我相信,";项目“tmp”和“dic2”;是dict,那么为什么要报告这个错误呢?,pandas,Pandas,火车头 项目.总目() 然后我想添加一个“item\u category\u id”来训练_raw,你的意思是从items的数据,所以我想创建一个item\u id和item\u category\u id的dict item_name item_id item_category_id 0 ! ВО ВЛАСТИ НАВАЖДЕНИЯ (ПЛАСТ.) D 0 40 1 !ABBYY FineReader 12 Professional Edition Full...

火车头

项目.总目()

然后我想添加一个“item\u category\u id”来训练_raw,你的意思是从items的数据,所以我想创建一个item\u id和item\u category\u id的dict

    item_name   item_id item_category_id
0   ! ВО ВЛАСТИ НАВАЖДЕНИЯ (ПЛАСТ.) D   0   40
1   !ABBYY FineReader 12 Professional Edition Full...   1   76
2   ***В ЛУЧАХ СЛАВЫ (UNV) D    2   40
3   ***ГОЛУБАЯ ВОЛНА (Univ) D   3   40
4   ***КОРОБКА (СТЕКЛО) D   4   40

item_category_id = items['item_category_id']
item_id = train_raw.item_id
items_tmp = items.drop(['item_name'],axis=1)
items_tmp_dic = items_tmp.to_dict('split')
items_tmp_dic = items_tmp_dic.get('data')

items_tmp_dic2 = dict(items_tmp_dic)

ic_id = []
for i in np.nditer(item_id.values[:10]):
    ic_id.append(items_tmp_dic2.get(i))
print(len(ic_id))
我明白了

for i in np.nditer(item_id.values[:10]):
    print(i)

我已经确保“items\u tmp\u dic2”的类型是dict,那么为什么呢?

我已经用int()解决了这个问题


请添加您得到的代码和错误,我建议您在此处阅读答案:
item_category_id = items['item_category_id']
item_id = train_raw.item_id
items_tmp = items.drop(['item_name'],axis=1)
items_tmp_dic = items_tmp.to_dict('split')
items_tmp_dic = items_tmp_dic.get('data')

items_tmp_dic2 = dict(items_tmp_dic)

ic_id = []
for i in np.nditer(item_id.values[:10]):
    ic_id.append(items_tmp_dic2.get(i))
print(len(ic_id))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-50-be637620ea6d> in <module>
      6 ic_id = []
      7 for i in np.nditer(item_id.values[:10]):
----> 8     ic_id.append(items_tmp_dic2.get(i))
      9 print(len(ic_id))

TypeError: unhashable type: 'numpy.ndarray'
for i in np.nditer(item_id.values[:10]):
    print(i)
22154
2552
2552
2554
2555
2564
2565
2572
2572
2573
for i in np.nditer(item_id.values[:10]):
    ic_id.append(items_tmp_dic2.get(int(i)))