python大 pandas 将数据帧转换为具有多个值的字典 [英] python pandas convert dataframe to dictionary with multiple values
本文介绍了python大 pandas 将数据帧转换为具有多个值的字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
将大熊猫导入为pd,numpy为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()
打印df
地址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
打印AS
{'66 C':'Bb',' 12 A':'Ff','10 B':'Dd'}
我想要的是对于重复的存储多个值,如:
{'66 C':['Bb'],'12 A' ['Aa','Ee','Ff'],'10 B':['Cc','Dd']}
解决方案
我想你可以使用 groupby
和一个字典理解在这里:
>>> df
地址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']}
I have a dataframe with 2 columns Address and ID. I want to merge IDs with the same addresses in a dictionary
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'}
What I want is for the duplicates to store multiple values like:
{'66 C': ['Bb'], '12 A': ['Aa','Ee','Ff'], '10 B': ['Cc','Dd']}
解决方案
I think you can use groupby
and a dictionary comprehension here:
>>> 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']}
这篇关于python大 pandas 将数据帧转换为具有多个值的字典的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文