如何将嵌套词典列表转换为pandas dataframe?
In [123]:
metric_list
Out[123]:
[{'14-09-18': {u'AWSDataTransfer': 0.14,
u'AmazonDynamoDB': 0.0,
u'AmazonEC2': 15.0,
u'AmazonGlacier': 0.0,
u'AmazonRedshift': 275.4,
u'AmazonS3': 16.29,
u'AmazonSNS': 0.0}},
{'14-09-17': {u'AWSDataTransfer': 0.14,
u'AmazonDynamoDB': 0.0,
u'AmazonEC2': 13.75,
u'AmazonGlacier': 0.0,
u'AmazonRedshift': 249.05,
u'AmazonS3': 16.28,
u'AmazonSNS': 0.0}}]
我无法直接将数据导入数据框,如下所示:
In [127]:
pd.DataFrame(metric_list)
Out[127]:
14-09-17 14-09-18
0 NaN {u'AmazonEC2': 15.0, u'AWSDataTransfer': 0.14,...
1 {u'AmazonEC2': 13.75, u'AWSDataTransfer': 0.14... NaN
答案 0 :(得分:2)
试试这个:
import pandas as pd
data = [{'14-09-18': {u'AWSDataTransfer': 0.14,
u'AmazonDynamoDB': 0.0,
u'AmazonEC2': 15.0,
u'AmazonGlacier': 0.0,
u'AmazonRedshift': 275.4,
u'AmazonS3': 16.29,
u'AmazonSNS': 0.0}},
{'14-09-17': {u'AWSDataTransfer': 0.14,
u'AmazonDynamoDB': 0.0,
u'AmazonEC2': 13.75,
u'AmazonGlacier': 0.0,
u'AmazonRedshift': 249.05,
u'AmazonS3': 16.28,
u'AmazonSNS': 0.0}}]
pd.concat([pd.DataFrame.from_dict(item, orient="index") for item in data])
答案 1 :(得分:0)
mylist=[]
for i in metric_list:
for k, v in i.items():
for a, b in v.items():
mytup = (k, a, b)
mylist.append(mytup)
df = pd.DataFrame(mylist)
df.columns =['date', 'type', 'amount']
df.set_index(['date', 'type'])