Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将嵌套字典导入到pandas_Pandas - Fatal编程技术网

将嵌套字典导入到pandas

将嵌套字典导入到pandas,pandas,Pandas,如何将嵌套字典列表转换为数据帧 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

如何将嵌套字典列表转换为数据帧

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}}]
我无法直接将数据导入dataframe,如下所示:

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
试试这个:

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])
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'])