2016-01-24 74 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

感谢更新,我发现那个经过几个小时的搜索后,阿梅发帖。 –