【问题标题】:Creating a Pandas DataFrame from Uneven List of Dictionaries从不均匀的字典列表中创建 Pandas DataFrame
【发布时间】:2017-10-03 03:55:45
【问题描述】:

我正在尝试将字典放入格式化的 DataFrame。

我通过 API 调用从以下位置获取数据:https://www.cryptonator.com/api

r = requests.get('https://api.cryptonator.com/api/ticker/btc-usd')
x = r.json()

返回的数据格式为:

{"ticker":{"base":"BTC","target":"USD","price":"443.7807865468","volume":"31720.1493969300","change":"0.3766203596"},
"timestamp":1399490941,
"success":true,
"error":""
}

我只对字典“ticker”和键值对“timestamp”中的一些数据感兴趣。

我的问题是,由于“ticker”是字典中的一个字典,而“timestamp”只是一个键值对,我似乎无法将它们导入这个特定的 Pandas DataFrame:

  base           price   timestamp            volume
0  BTC  443.7807865468  1399490941  31720.1493969300

我尝试了几种方法,但这些方法并不能完全满足我的需求,包括:

pd.DataFrame(x).T 
                 base       change          price      target          volume
ticker            BTC  -8.71469546  1532.83742332         USD  22275.83826859
timestamp  1493925662   1493925662     1493925662  1493925662      1493925662

【问题讨论】:

    标签: python-3.x pandas dictionary dataframe key-value


    【解决方案1】:

    你可以拿出你需要的碎片

    pd.DataFrame({
            'ticker': x['ticker'],
            'timestamp': x['timestamp']
        }).T
    
                     base        change           price      target            volume
    ticker            BTC  0.3766203596  443.7807865468         USD  31720.1493969300
    timestamp  1399490941    1399490941      1399490941  1399490941        1399490941
    

    旧答案

    pd.io.json.json_normalize(x)
    
      error success ticker.base ticker.change    ticker.price ticker.target     ticker.volume   timestamp
    0          True         BTC  0.3766203596  443.7807865468           USD  31720.1493969300  1399490941
    

    【讨论】:

      猜你喜欢
      • 2021-06-20
      • 2019-02-10
      • 2020-01-22
      • 2015-10-29
      • 2017-06-19
      • 2021-03-01
      • 2022-06-10
      • 1970-01-01
      • 2020-08-31
      相关资源
      最近更新 更多