【问题标题】:Convert a dictionary of dictionary into a row wise dataframe in pandas [duplicate]将字典字典转换为熊猫中的逐行数据框[重复]
【发布时间】:2020-12-01 12:30:52
【问题描述】:

我有如下所示的字典

d1:

{'teachers': 49, 
      'students': 289,  
      'R': 3.7, 
      'holidays': 165, 
      'E': {'from': '2020-02-29T20:00:00.000Z', 'to': '2020-03-20T20:00:00.000Z', 
                  'F': 3, 'C': 2},
      'OS':18 
      'sC': {'from': '2020-03-31T20:00:00.000Z', 'to': '2020-05-29T20:00:00.000Z', 
                  'F': 25, 'C': 31}}

我想将上面的字典转换为数据框,如下图所示。

Params     Value
teachers   49
students   289
R          3.7
holidays   165
E_from     2020-02-29
E_to       2020-03-20
E_F        3
E_C        2
OS         18
sC_from    2020-03-31
sC_to      2020-05-29
sC_F       25
sC_C       31  

df 应该有两列,标题为“params”和“value”

【问题讨论】:

  • pd.io.json.json_normalize(d, sep='_').loc[0] ,和问题差不多,我就用之前问的同一个问题来结束吧~

标签: python-3.x pandas dataframe dictionary


【解决方案1】:

您可以使用json_normalize,然后转置数据帧:

d = {'teachers': 49,
      'students': 289,
      'R': 3.7,
      'holidays': 165,
      'Em': {'from': '2020-02-29T20:00:00.000Z', 'to': '2020-03-20T20:00:00.000Z',
                  'F': 3, 'C': 2},
      'OS':18,
      'sC': {'from': '2020-03-31T20:00:00.000Z', 'to': '2020-05-29T20:00:00.000Z',
                  'F': 25, 'C': 31}}


df=pd.json_normalize(d, sep='_').T.reset_index().rename(columns={'index':'Params',0:'Value'})

输出:

df
Params                       Value
teachers                        49
students                       289
R                              3.7
holidays                       165
OS                              18
Em_from   2020-02-29T20:00:00.000Z
Em_to     2020-03-20T20:00:00.000Z
Em_F                             3
Em_C                             2
sC_from   2020-03-31T20:00:00.000Z
sC_to     2020-05-29T20:00:00.000Z
sC_F                            25
sC_C                            31

【讨论】:

  • 已编辑问题,请修改您的答案
  • 准备好了,已编辑! @丹麦
  • @Danish - 不客气!编码愉快!
猜你喜欢
  • 2020-12-01
  • 2019-07-18
  • 2018-07-14
  • 2019-05-07
  • 2020-09-08
  • 2017-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多