首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫从字典列表中创建数据

熊猫从字典列表中创建数据
EN

Stack Overflow用户
提问于 2017-11-25 03:40:34
回答 2查看 423关注 0票数 0

我有一个字典,它的键是一些用户I,值是字典的列表,以一个键值对为例:

代码语言:javascript
复制
my_dict['10020'] = [{'type': 'phone', 'count': 3},
                    {'type': 'id_card', 'count': 1},
                    {'type': 'email', 'count': 2}]

现在,我想创建一个DataFrame,每一行都是一个键值对,列是上述字典列表中的“类型”字段,值分别是“计数”字段,例如:

代码语言:javascript
复制
    ID    phone    id_card    email
    10020    3           1        2

我不知道字典里有多少种潜在的“类型”,所以不是遍历字典,把所有的类型都找出来,而是有一个方便的方法来完成工作吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-25 04:34:39

考虑一些变量类型的数据d

代码语言:javascript
复制
d = \
{
    "10021": [
        {
            "type": "fax",
            "count": 33
        },
        {
            "type": "email",
            "count": 22
        }
    ],
    "10020": [
        {
            "type": "phone",
            "count": 3
        },
        {
            "type": "id_card",
            "count": 1
        },
        {
            "type": "email",
            "count": 2
        }
    ]
}

重塑您的数据如下:

代码语言:javascript
复制
r = [{'id' : k, 'counts' : d[k]} for k in d]    

现在,使用json_normalize + pivot

代码语言:javascript
复制
df = pd.io.json.json_normalize(r, 'counts', 'id').pivot('id', 'type', 'count')
df

type   email   fax  id_card  phone
id                                
10020    2.0   NaN      1.0    3.0
10021   22.0  33.0      NaN    NaN

这应该适用于数据中的任何type

票数 1
EN

Stack Overflow用户

发布于 2017-11-25 04:07:11

数据输入

代码语言:javascript
复制
d={'10020': [{'type': 'phone', 'count': 3},
                    {'type': 'id_card', 'count': 1},
                    {'type': 'email', 'count': 2}],
 '10021': [{'type': 'phone', 'count': 33},
 {'type': 'id_card', 'count': 11},
{'type': 'email', 'count': 22}]
}

然后我们使用pd.concate

代码语言:javascript
复制
pd.concat([pd.DataFrame(y).set_index('type').rename(columns={'count':x}).T for x,y in d.items()])


Out[480]: 
type   phone  id_card  email
10020      3        1      2
10021     33       11     22
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47482381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档