[英]Pandas to_dict group all non index columns into a list of tuples
示例数据框
patient_id, value_id, value
1 10 20
1 30 5
2 40 8
从这个数据框中,我想将其转换成字典形式的东西。
{ 1: [(10, 20), (30, 5)], 2: [(40, 8)] }
我知道我可以使用to_dict
但是我在这里想念什么?
我看不到to_dict()
可以在这里创建所需内容的任何方式。 以下解决方案不是最适合Python(或Pandanic)的解决方案,但是它是获取所需内容的一种方法:
d={}
for pid,vid,v in df.itertuples(index=False):
d.setdefault(pid,[])
d[pid].append((vid,v))
如果给定的patient_id
已存在于输出字典中,则循环的第一行不执行任何操作,如果没有,则添加一个空列表。 然后,第二行将所需的值附加到空列表或现有列表(如果已存在)中。
编辑: 此答案还使用迭代,并且还推测熊猫没有本机的方式来执行此操作。 我已经更新了它的答案,它使用了itertuples()
,它比我原来的as_matrix()
占用更少的内存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.