繁体   English   中英

python pandas将dataframe转换为具有多个值的字典

[英]python pandas convert dataframe to dictionary with multiple values

我有一个包含2列地址和ID的数据帧。 我想将ID与字典中的相同地址合并

import pandas as pd, numpy as np

df = pd.DataFrame({'Address' : ['12 A', '66 C', '10 B', '10 B', '12 A', '12 A'],
                'ID' : ['Aa', 'Bb', 'Cc', 'Dd', 'Ee', 'Ff']})
AS=df.set_index('Address')['ID'].to_dict()

print df

  Address  ID
0    12 A  Aa
1    66 C  Bb
2    10 B  Cc
3    10 B  Dd
4    12 A  Ee
5    12 A  Ff

print AS

{'66 C': 'Bb', '12 A': 'Ff', '10 B': 'Dd'}

我想要的是重复项存储多个值,如:

{'66 C': ['Bb'], '12 A': ['Aa','Ee','Ff'], '10 B': ['Cc','Dd']}

我想你可以在这里使用groupby和字典理解:

>>> df
  Address  ID
0    12 A  Aa
1    66 C  Bb
2    10 B  Cc
3    10 B  Dd
4    12 A  Ee
5    12 A  Ff
>>> {k: list(v) for k,v in df.groupby("Address")["ID"]}
{'66 C': ['Bb'], '12 A': ['Aa', 'Ee', 'Ff'], '10 B': ['Cc', 'Dd']}

在回复有关多列的评论时:

>>> df
  Address  ID  Name
0    12 A  Aa  Alpha
1    66 C  Bb  Bravo
2    10 B  Cc  Charlie
3    10 B  Dd  Delta
4    12 A  Ee  Edgar
5    12 A  Ff  Frank
>>> {k: v.to_dict() for k,v in df.groupby("Address")}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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