我有一个这样的列表。
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
尝试了许多可能性,但找不到解决方法。
答案 0 :(得分:4)
将列表推导用于Global
与DataFrame
构造函数的选择:
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