python大 pandas 将数据帧转换为具有多个值的字典 [英] python pandas convert dataframe to dictionary with multiple values

查看:194
本文介绍了python大 pandas 将数据帧转换为具有多个值的字典的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

 将大熊猫导入为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆