使用pandas,python创建字典,返回错误:"返回self._engine.get_loc(key)"

时间:2017-05-09 15:57:05

标签: python pandas dictionary

这是数据集的样本

Umls                                    Snomed
C0027497/Nausea /Sign or Symptom    Nausea (finding)[FN/422587007] 
C0151786 / Muscle/Sign or Symptom   Muscle weakness [(finding) /FN/26544005]
C2127305 /bitter/ Sign or Symptom    ?
NA                                   NA

这是我创建数据字典的代码:

df_dic_1= df_dic_1[['UMLS', 'snomed']]

df_dic_1['umls'].fillna(0, inplace=True)
df_dic_1['snomed'].fillna(0, inplace=True)

equiv_snomed=df_dic_1.set_index('umls')['snomed'].to_dict()

但它会产生以下错误:

"   return self._engine.get_loc(key)"

任何帮助?

2 个答案:

答案 0 :(得分:1)

试试这个

df_dic_1= df_dic_1[['UMLS', 'snomed']]

df_dic_1['UMLS'].fillna(0, inplace=True)
df_dic_1['snomed'].fillna(0, inplace=True)

equiv_snomed=df_dic_1.set_index('UMLS')['snomed'].to_dict()

因为您有密钥错误

答案 1 :(得分:1)

2列使用5个不同的列名:

示例中的

Umls,代码中的UMLSumls 示例中为Snomed,代码中为snomed

您需要通过以下方式检查:

print (df.columns.tolist())

并使用正确的。

e.g。如果样本中的名称正确:

f_dic_1= df_dic_1[['Umls', 'Snomed']]

df_dic_1['Umls'].fillna(0, inplace=True)
df_dic_1['Snomed'].fillna(0, inplace=True)

equiv_snomed=df_dic_1.set_index('Umls')['Snomed'].to_dict()