从字典熊猫中获取记录

时间:2017-11-29 12:27:05

标签: python pandas dictionary

我创建了一个字典CODE_di,其中包含2列«Code1»«Code2»,我想将«Code2»中包含的值映射到现有的DataFrame'帧'

CODE_di = [{'PF5684' : 5643, 'KT6853':3457,....}]
CODE_di = frame_Code.set_index('Code1').T.to_dict('records')
frame['Code2']= frame ['Code1'].map(CODE_di)

当我映射时我得到了这个错误,不明白为什么它不起作用。

TypeError:'list'对象不可调用

示例:

df = pd.DataFrame({'col1':['AZER424','GFDG5345','DG6546'],'col2':[1234,467,1347]})
dict_test = df.set_index('col1').T.to_dict('records')
df1 = pd.DataFrame({'col3':['AZER424','DG6546']})
df1['code']= df1['col3'].map(dict_test)

P.S:当我用'list'或'series'替换'records'时它运行正常,但我只需要记录

1 个答案:

答案 0 :(得分:2)

要创建dict,您需要在系列中应用.to_dict()。通过在set_index之后选择哪个列col2来实现这一点。

dict_test = df.set_index('col1')['col2'].to_dict()

这是因为:

type(df.set_index('col1')['col2']) == 'pandas.core.series.Series'