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

从嵌套字典中创建熊猫数据
EN

Stack Overflow用户
提问于 2020-08-06 13:27:43
回答 4查看 139关注 0票数 0

我有一个字典data,它的结构如下:

代码语言:javascript
复制
{
    1: {
        'title': 'Test x Miss LaFamilia - All Mine [Music Video] | Link Up TV',
        'time': '2020-06-28T18:30:06Z',
        'channel': 'Link Up TV',
        'description': 'SUB & ENABLE NOTIFICATIONS for more:  Visit our clothing store:  Visit our website for the latest videos: ...',
        'url': 'youtube',
        'region_searched': 'US',
        'time_searched': datetime.datetime(2020, 8, 6, 13, 6, 5, 188727, tzinfo = < UTC > )
    },
    2: {
        'title': 'Day 1 Highlights | England Frustrated by Rain as Babar Impresses | England v Pakistan 1st Test 2020',
        'time': '2020-08-05T18:29:43Z',
        'channel': 'England & Wales Cricket Board',
        'description': 'Watch match highlights of Day 1 from the 1st Test between England and Pakistan at Old Trafford. Find out more at ecb.co.uk This is the official channel of the ...',
        'url': 'youtube',
        'region_searched': 'US',
        'time_searched': datetime.datetime(2020, 8, 6, 13, 6, 5, 188750, tzinfo = < UTC > )
    }

我正试着制作一只熊猫DataFrame,它看起来像这样:

代码语言:javascript
复制
rank    title                             time                      channel             description                                     url                             region_searched         time_searched
1       Test x Miss LaFamilia...          2020-06-28T18:30:06Z      Link Up TV          SUB & ENABLE NOTIFICATIONS for more...          youtube.com                     US                      2020-8-6 13:06:05
2       Day 1 Highlights | E...           2020-08-05T18:29:43       England & ..        Watch match highlights of D                     youtube.com                     US                      2020-8-6 13:06:05

在我的data字典中,每个key都应该是key中的rank条目,父key中的每个key都是一个列名为key的条目,它们的值是key持有的value

当我简单地运行:

代码语言:javascript
复制
df = pd.DataFrame(data)

df看起来如下所示:

代码语言:javascript
复制
                 1                                                  2
title            Test x Miss LaFamilia - All Mine [Music Video]...  Day 1 Highlights | England Frustrated by Rain ...
time             2020-06-28T18:30:06Z                               2020-08-05T18:29:43Z
channel          Link Up TV                                         England & Wales Cricket Board
description      SUB & ENABLE NOTIFICATIONS for more: http://go...  Watch match highlights of Day 1 from the 1st T...
url              youtube.com/watch?v=YB3xASruJHE                    youtube.com/watch?v=xABoyLxWc7c
region_searched  US                                                 US
time_searched    2020-08-06                                         2020-08-06

我觉得很少有智能的枢轴线远离我所需要的东西,但我不知道如何以一种聪明的方式实现我所需要的结构。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-08-06 13:35:27

尝尝这个,

代码语言:javascript
复制
import pandas as pd

pd.DataFrame(data.values()).assign(rank = data.keys())

代码语言:javascript
复制
                                               title  ... rank
0  Test x Miss LaFamilia - All Mine [Music Video]...  ...    1
1  Day 1 Highlights | England Frustrated by Rain ...  ...    2
票数 2
EN

Stack Overflow用户

发布于 2020-08-06 13:41:25

可以像@dm2在注释中提到的那样,以一种简单得多的方式来完成这一任务。在这里,d是具有数据的字典

代码语言:javascript
复制
df=pd.DataFrame(d)
dfz=df.T

创建rank

代码语言:javascript
复制
dfz['rank']=dfz.index
票数 4
EN

Stack Overflow用户

发布于 2020-08-06 13:48:41

如果希望索引和排序为两个不同的列,则为。

  1. 从data

创建数据格式

代码语言:javascript
复制
df = pd.DataFrame(data.values())

  1. 只是在dataframe

中添加了一个级别列

代码语言:javascript
复制
df['rank'] = data.keys()

若要在一行中执行此操作,请使用assign方法

代码语言:javascript
复制
df = pd.DataFrame(data.values()).assign(rank = data.keys())

如果希望索引和排序是相同的列,则为

  1. 创建数据格式,但以转置顺序

代码语言:javascript
复制
df = pd.DataFrame(data).T

  1. 重命名索引

代码语言:javascript
复制
df.index.names = ['rank']

应该管用的。

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

https://stackoverflow.com/questions/63284642

复制
相关文章

相似问题

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