如何将多索引数据转换为数据帧

时间:2020-04-06 07:04:44

标签: python pandas

我有一个这样的列表。

result =  [
{'Global': {'NewConfirmed': 100282, 'TotalConfirmed': 1162857, 'NewDeaths': 5658, 'TotalDeaths': 63263, 'NewRecovered': 15405, 'TotalRecovered': 230845}},
{'Global': {'NewConfirmed': 106598, 'TotalConfirmed': 1252421, 'NewDeaths': 5972, 'TotalDeaths': 67572, 'NewRecovered': 11066, 'TotalRecovered': 241599}}
]

我想将此数据转换为如下所示的数据框。

   NewConfirmed  TotalConfirmed  NewDeaths  TotalDeaths  NewRecovered  TotalRecovered
0        100282         1162857       5658        63263         15405          230845
1        106598         1252421       5972        67572         11066          241599

尝试了许多可能性,但找不到解决方法。

1 个答案:

答案 0 :(得分:4)

将列表推导用于GlobalDataFrame构造函数的选择:

df = pd.DataFrame([x['Global'] for x in result])
print (df)
   NewConfirmed  TotalConfirmed  NewDeaths  TotalDeaths  NewRecovered  \
0        100282         1162857       5658        63263         15405   
1        106598         1252421       5972        67572         11066   

   TotalRecovered  
0          230845  
1          241599  

如果外部词典中的更多键使用json.json_normalize

from pandas.io.json import json_normalize

df = json_normalize(result)
print (df)
   Global.NewConfirmed  Global.TotalConfirmed  Global.NewDeaths  \
0               100282                1162857              5658   
1               106598                1252421              5972   

   Global.TotalDeaths  Global.NewRecovered  Global.TotalRecovered  
0               63263                15405                 230845  
1               67572                11066                 241599