如何将结构文本文件转换为熊猫数据框

时间:2020-02-10 19:31:16

标签: python pandas dataframe

我有一个具有以下格式的文本文件:

"Model_1": {
        "10000": {
            "KPI_1": [
                0,
                3.0,
                6.0
            ],
            "KPI_2": [
                0,
                3.0,
                6.0
            ],
        }
            ...
        "15000": {
            "KPI_3": [
                0,
                3.0,
                6.0
            ],
            "KPI_4": [
                0,
                3.0,
                6.0
            ],
            ...
        }
        "20000": {
            "KPI_5": [
                0,
                3.0,
                6.0
            ],
            "KPI_6": [
                0,
                3.0,
                6.0
            ],
            ...
        }

}
"Model_2": {
        "10000": {
            "KPI_7": [
                v1,
                v2,
                v3
            ],
            "KPI_8": [
                v1,
                v2,
                v3
            ],
            ...
        }
        "15000": {
            "KPI_9": [
                v1,
                v2,
                v3
            ],
            "KPI_10": [
                v1,
                v2,
                v3
            ],
            ...
        }            
        "20000": {
            "KPI_11": [
                v1,
                v2,
                v3
            ],
            "KPI_12": [
                v1,
                v2,
                v3
            ],
            ...
        }            

}

我想获得一个具有以下结构的pandas df:

       Model_1                            Model_2                         ... Model_N
       10000       15000      20000       10000       15000       20000       10000       15000       20000
KPI_1 {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}
KPI_2 {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}
KPI_3 {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}
...
KPI_N {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}  {v1,v2,v3}

1 个答案:

答案 0 :(得分:1)

您向我们显示的文本文件中的数据 look 很像一本字典,在我添加注释的两个地方似乎只缺少逗号#我在此处添加了逗号

Model_1: {
    "10000": {
        "KPI_1": [
            0,
            3.0,
            6.0
        ],
        "KPI_2": [
            0,
            3.0,
            6.0
        ],
    }, # I added a comma here
    "15000": {
        "KPI_3": [
            0,
            3.0,
            6.0
        ],
        "KPI_4": [
            0,
            3.0,
            6.0
        ],
    }, # I added a comma here
    "20000": {
        "KPI_5": [
            0,
            3.0,
            6.0
        ],
        "KPI_6": [
            0,
            3.0,
            6.0
        ],
    }
} 

如果它确实是字典,则可以将它们转换为DataFrames:

pd.DataFrame.from_dict(Model_1, orient='index')