繁体   English   中英

熊猫to_dict将所有非索引列分组为元组列表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM