新的pandas dataframe列使用python词典中的值

时间:2014-10-02 02:16:08

标签: python dictionary pandas indexing dataframe

我有一个pandas数据帧,例如:

colA      colB 
code1      num
code2      num
code3      num
code4      num
code5      num

我也有一个python字典,例如:

py_dict = {'code1': [val1, val2, val3, val4, val5], 'code2': [val1, val2, val3, val4, val5], 'code3': [val1, val2, val3, val4, val5], 'code4': [val1, val2, val3, val4, val5], 'code5': [val1, val2, val3, val4, val5]}

我想要做的是在pandas数据帧中创建一个新列,称之为colC,它使用colA中的键来匹配py_dict中的相应键/列表,并返回第三个列表值val3。我已经尝试过dataframe.from_dict()和dataframe.update(),但不确定如何正确索引字典。

1 个答案:

答案 0 :(得分:1)

首先创建一个只包含每个列表所需值的新dict:

new_dict = {k: v[2] for k, v in py_dict.iteritems()}

然后您可以使用Series.map

df['new_col'] = df.colA.map(new_dict)