首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Pandas列中拆分多个字典

在Pandas列中拆分多个字典
EN

Stack Overflow用户
提问于 2017-12-12 21:44:02
回答 2查看 341关注 0票数 0

我试着在熊猫栏里把一本字典和一个列表分开,但它对我没用.

当被调用时,列看起来是这样的;

代码语言:javascript
复制
df.topics[3]

输出

代码语言:javascript
复制
"[{'urlkey': 'webdesign', 'name': 'Web Design', 'id': 659}, {'urlkey': 'productdesign', 'name': 'Product Design', 'id': 2993}, {'urlkey': 'internetpro', 'name': 'Internet Professionals', 'id': 10102}, {'urlkey': 'web', 'name': 'Web Technology', 'id': 10209}, {'urlkey': 'software-product-management', 'name': 'Software Product Management', 'id': 42278}, {'urlkey': 'new-product-development-software-tech', 'name': 'New Product Development: Software & Tech', 'id': 62946}, {'urlkey': 'product-management', 'name': 'Product Management', 'id': 93740}, {'urlkey': 'internet-startups', 'name': 'Internet Startups', 'id': 128595}]"

我只希望保留“name”和“id”,以便放入topic_1、topic_2等的单独列中。

感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-12 22:54:49

你可以试试这个。

代码语言:javascript
复制
import json
df.topics.apply(lambda x :  {x['id']:x['name'] for x in json.loads(x.replace("'",'"'))} )

您给出的行的输出是:

代码语言:javascript
复制
{659: 'Web Design',
 2993: 'Product Design',
 10102: 'Internet Professionals',
 10209: 'Web Technology',
 42278: 'Software Product Management',
 62946: 'New Product Development: Software & Tech',
 93740: 'Product Management',
 128595: 'Internet Startups'}
票数 1
EN

Stack Overflow用户

发布于 2019-07-04 18:30:45

你应该尝试一种简单的方法

代码语言:javascript
复制
    dt = df.topic[3]
    li = []
    for x in range(len(dt)):
       t = {dt[x]['id']:dt[x]['name']}
       li.append(t)
    print(li)

输出是-

代码语言:javascript
复制
    [{659: 'Web Design'},
    {2993: 'Product Design'},
    {10102: 'Internet Professionals'},
    {10209: 'Web Technology'},
    {42278: 'Software Product Management'},
    {62946: 'New Product Development: Software & Tech'},
    {93740: 'Product Management'},
    {128595: 'Internet Startups'}]

首先,我们以列表和字典形式的df.topic3dt中的值作为列表中的值,然后我们采用一个临时列表li[],其中我们将添加(追加)为我们的值,现在我们运行循环来表示de.topic(我们作为dt)的值的长度,现在在t中,我们通过dt[0]['id']dt[0]['name']添加id或name,即'659:'Web Design',因为x增加了所有值,然后,通过{ : },我们正在转换字典中的值,并将其附加到临时列表li

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47782052

复制
相关文章

相似问题

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