【问题标题】:What is the most effective method for adding nested data to a pandas dataframe?将嵌套数据添加到熊猫数据框的最有效方法是什么?
【发布时间】:2020-07-20 09:24:21
【问题描述】:

我一直在尝试将来自 API 的 JSON 数据添加到 pandas 数据框中。这是我尝试过的代码:

url = 'https://api.covid19api.com/summary'
df = pd.read_json(url)

print(df.head())

运行此代码时,我收到以下错误:

ValueError:将字典与非系列混合可能会导致模棱两可 订购。

对此的任何建议都会有所帮助。提前致谢。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    嗨,马特,欢迎来到 SO。每当您使用json 时,最好先获取数据并查看它。在您的特定情况下,密钥 Global 与 Countries 中的密钥不同,这就是您收到该错误的原因

    import urllib.request
    import json
    import pandas as pd
    
    url = 'https://api.covid19api.com/summary'
    response = urllib.request.urlopen(url)
    # the following is the data you should explore
    data = json.loads(response.read())
    
    df = pd.DataFrame(data["Countries"])
    

    【讨论】:

      【解决方案2】:

      JSON 有几个元素(“全球”、“国家/地区”和“日期”),因此将其拆分为单独的数据框是有意义的,而使用 pandas.read_json() 并不容易做到这一点。

      import requests
      
      url = 'https://api.covid19api.com/summary'
      r = requests.get(url)
      data = r.json()
      global_data = pd.DataFrame(data['Global'])
      countries = pd.DataFrame(data['Countries'])
      

      【讨论】:

        猜你喜欢
        • 2023-02-08
        • 1970-01-01
        • 2020-11-29
        • 1970-01-01
        • 2017-11-28
        • 2018-05-27
        • 2021-02-15
        • 2023-03-23
        • 2018-04-14
        相关资源
        最近更新 更多