2014-10-02 161 views
2

我有一個熊貓據幀,例如:新熊貓據幀列

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]} 

我想什麼do是在熊貓數據框中創建一個新列,將其稱爲colC,它使用colA中的鍵匹配py_dict中相應的鍵/列表並返回第三個列表值val3。我已經嘗試了dataframe.from_dict()和dataframe.update(),但不知道如何正確索引字典。

回答

1

首先創建一個僅包含你從每個列表中選擇所需值的新字典:

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

然後你可以使用在返回的V A字符串值Series.map

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

任何建議[2]這個例子? – acmyers 2014-10-03 03:43:04

+0

@ user2920457:你是什麼意思?這個問題沒有提及什麼類型的'val2'。如果它已經是一個字符串,則無事可做。如果你想把'v [2]'轉換成一個字符串,那麼在'new_dict'理解中執行'str(v [2])'。 – BrenBarn 2014-10-03 03:51:32

+0

你是對的。錯誤是使用錯誤的df列名map(),我的不好。 – acmyers 2014-10-03 04:19:12