【问题标题】:Python: How to create DataFrame columns from a dict inside a list [duplicate]Python:如何从列表中的字典创建 DataFrame 列 [重复]
【发布时间】:2018-03-20 00:28:58
【问题描述】:

reference

我有一个以这种形式输出的字典:

response['candles'][0:2]

[{'complete': True,
  'mid': {'c': '0.91535', 'h': '0.91535', 'l': '0.91535', 'o': '0.91535'},
  'time': '2002-05-06T21:00:00.000000000Z',
  'volume': 1},
 {'complete': True,
  'mid': {'c': '0.90435', 'h': '0.90435', 'l': '0.90435', 'o': '0.90435'},
  'time': '2002-05-07T21:00:00.000000000Z',
  'volume': 1}]

我可以轻松创建如下所示的 DataFrame:

res = pd.DataFrame(response['candles'])

complete    mid time    volume
0   True    {'o': '0.91535', 'h': '0.91535', 'l': '0.91535...   2002-05-06T21:00:00.000000000Z  1
1   True    {'o': '0.90435', 'h': '0.90435', 'l': '0.90435...   2002-05-07T21:00:00.000000000Z  1

我可以像这样访问 'mid' dict 项:

response['candles'][0]['mid']['c']

'0.91535'

但是如何在我的 DataFrame 中为每个“中间”项目添加列,而不是在 DataFrame 中添加一个 dict?我想要一个用于 ['mid']['o']、['mid']['h'] 等的列。

谢谢

【问题讨论】:

    标签: python list pandas dictionary dataframe


    【解决方案1】:

    使用pandas.io.json.json_normalize:

    d = [{'complete': True,
      'mid': {'c': '0.91535', 'h': '0.91535', 'l': '0.91535', 'o': '0.91535'},
      'time': '2002-05-06T21:00:00.000000000Z',
      'volume': 1},
     {'complete': True,
      'mid': {'c': '0.90435', 'h': '0.90435', 'l': '0.90435', 'o': '0.90435'},
      'time': '2002-05-07T21:00:00.000000000Z',
      'volume': 1}]
    
    pd.io.json.json_normalize(d)
    #complete     mid.c   mid.h   mid.l   mid.o                           time  volume
    #0  True    0.91535 0.91535 0.91535 0.91535 2002-05-06T21:00:00.000000000Z  1
    #1  True    0.90435 0.90435 0.90435 0.90435 2002-05-07T21:00:00.000000000Z  1
    

    【讨论】:

    • 可以使用apply(pd.Series)吗?
    • @LiamHealy 是的。这也有效。
    • 太棒了,谢谢!!!没想到是JSON格式...
    • 感谢您的信息。我本来打算提供一个替代答案,但结果证明这个问题是重复的 - 由@cᴏʟᴅsᴘᴇᴇᴅ标记
    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 2019-02-21
    • 2020-08-31
    • 1970-01-01
    • 2020-03-07
    相关资源
    最近更新 更多