簡體   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