2016-01-24 30 views
0

我試圖找出創建元組格式的最佳方法: 在一個數據幀:(x和y)從2列,然後使用列中的數據幀的作爲所述元組熊貓如何將數據框轉換爲元組元組的字典使用1列作爲關鍵和其餘作爲一個元組形式(col2:col3)

key  data_1 data_2 
0 14303 24.75 25.03 
1 12009 25.00 25.07 
2 14303 24.99 25.15 
3 12009 24.62 24.77 

所得字典 {14303 24.38的鍵:24.61 24:99:25:15 12009 24.62:24.77 25.00:25.07}

我試圖使用iterrows和枚舉,但想知道是否有更高的效率t的方式來實現它

回答

1

我想你想追加(data_1,data2)元組作爲給定鍵的值。這個解決方案使用了iterrows(),我承認你說過你已經使用了。如果這不是你正在尋找的,請發佈你的代碼,並確切地輸出你想要的。我不知道pandas中是否有本地方法來執行此操作。因此

# df is the dataframe 
from collections import defaultdict 
sample_dict = defaultdict(list) 
for line in df.iterrows(): 
    k = line[1][0] # key 
    d_tuple = (line[1][1], line[1][2]) # (data_1, data_2) 
    sample_dict[k].append(d_tuple) 

sample_list是:因此

defaultdict(list, 
     {12009.0: [(25.0, 25.07), (24.620000000000001, 24.77)], 
     14303.0: [(24.75, 25.030000000000001), 
      (24.989999999999998, 25.149999999999999)]}) 

sample_list[12009]是:

[(25.0, 25.07), (24.620000000000001, 24.77)] 

更新: 你可以看看這個線程太: https://stackoverflow.com/a/24368660/4938264

+0

感謝更新,我發現那個經過幾個小時的搜索後,阿梅發帖。 –