pandas如何使用1 col作为键将数据帧转换为元组元组的字典,其余作为表单的元组(col2:col3)

时间:2016-01-24 04:55:33

标签: python dictionary pandas tuples

我试图找出使用以下格式创建元组的最佳方法: (x:y)来自数据帧中的2列,然后使用数据帧的a列作为元组的键

   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并枚举,但想知道是否有更有效的方法来实现它

1 个答案:

答案 0 :(得分: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