列表中的嵌套字典到数据框python

Posted

技术标签:

【中文标题】列表中的嵌套字典到数据框python【英文标题】:nested dictionary in list to dataframe python 【发布时间】:2021-06-11 07:22:55 【问题描述】:

有一个来自 api 的 json 输入:


  "api_info": 
    "status": "healthy"
  ,
  "items": [
    
      "timestamp": "time", 
      "stock_data": [
        
          "ticker": "string",
          "industry": "string",
          "Description": "string"
        
      ]
     "ISIN":xxx,
     "update_datetime": "time"
    
  ]

已经开始运行

apiRawData = requests.get(url).json()['items']

然后运行 ​​json_normalize 方法:

apiExtractedData = pd.json_normalize(apiRawData,'stock_data',errors='ignore')

这是 stock_data 仍包含在列表中的初始输出。 stock_data ISIN update_datetime 0 ['description': 'zzz', 'industry': 'C', 'ticker...xxx time

stock_data ISIN update_datetime
0 ['description': 'zzz', 'industry': 'C', 'ticker...] 123 time

我想要实现的是显示标题和相应行的数据框:

description industry ticker ISIN update_datetime
0 'zzz' 'C' xxx 123 time

如果已经回答了现有问题,请指导我:) 干杯。

【问题讨论】:

【参考方案1】:

我认为您可以使用以下代码简单地将现有数据框转换为预期的数据框:

apiExtractedData['description'] = apiExtractedData['stock_data'].apply(lambda x: x[0]['description'])
apiExtractedData['industry'] = apiExtractedData['stock_data'].apply(lambda x: x[0]['industry'])
apiExtractedData['ticker'] = apiExtractedData['stock_data'].apply(lambda x: x[0]['ticker'])

然后删除您的 stock_data 列:

apiExtractedData = apiExtractedData.drop(['stock_data'], axis = 1)

【讨论】:

@BrandonWong 嗨,如果您觉得答案有帮助,请点击答案左侧的按钮接受它:) 哈哈。 @Divyessh,声望低于 15 人的投票将被记录,但不要更改公开显示的帖子得分。

以上是关于列表中的嵌套字典到数据框python的主要内容,如果未能解决你的问题,请参考以下文章

来自数据框的嵌套字典,带有循环列表

从嵌套字典结构列表(具有两个级别)创建数据框的 Pythonic 方法是啥?

如何将嵌套列表映射到 Python 中的可迭代字典

用 Pandas 数据框中的行填充嵌套字典

Python 3:扁平化嵌套字典和字典中的列表

从嵌套字典列表中获取熊猫数据框