Python / Pandas - 将带有内部词典的列表转换为DataFrame

时间:2016-01-06 02:58:34

标签: python dictionary pandas dataframe

我是pandas的新手,我需要将带有内部词典的列表转换为DataFrame

以下列表示例:

[('Fwd1', {'Score': 1.0, 'Prediction': 7.6, 'MAPE': 2.37}), ('Fwd2', {'Score': 1.0, 'Prediction': 7.62, 'MAPE': 2.57}), ('Fwd3', {'Score': 1.0, 'Prediction': 7.53, 'MAPE': 2.54})]

我希望它看起来像这样:

        Prediction    MAPE    Score                                               
Date                                                     
Fwd1           7.6    2.37        1
Fwd2          7.62    2.57        1
Fwd3          7.53    2.54        1

任何人都可以为我的旅程做好准备吗?

1 个答案:

答案 0 :(得分:2)

您可以先将list tuples转换为dict,然后再创建数据框。不幸的是,在这个结构中,索引和列需要交换为你想要的输出,所以你需要转置它。

假设x是您的清单:

In [18]: dict(x)
Out[18]:
{'Fwd1': {'MAPE': 2.37, 'Prediction': 7.6, 'Score': 1.0},
 'Fwd2': {'MAPE': 2.57, 'Prediction': 7.62, 'Score': 1.0},
 'Fwd3': {'MAPE': 2.54, 'Prediction': 7.53, 'Score': 1.0}}

In [19]: pd.DataFrame(dict(x))
Out[19]:
            Fwd1  Fwd2  Fwd3
MAPE        2.37  2.57  2.54
Prediction  7.60  7.62  7.53
Score       1.00  1.00  1.00

In [20]: pd.DataFrame(dict(x)).T
Out[20]:
      MAPE  Prediction  Score
Fwd1  2.37        7.60      1
Fwd2  2.57        7.62      1
Fwd3  2.54        7.53      1