我试图找出使用以下格式创建元组的最佳方法: (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并枚举,但想知道是否有更有效的方法来实现它
答案 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