如何将字典键转换为行并将值转换为列

时间:2019-07-23 10:54:29

标签: python pandas dataframe

如何将嵌套字典转换为数据框

我的字典在下面

out =  {'1.2.2.2': {'DELETE': 1,
                'GET': 5,
                'POST': 1,
                'PUT': 3},
 '2.2.2.2': {'DELETE': 1,
                   'GET': 6,
                   'POST': 3,
                   'PUT': 3},
 '3.3.3.3': {'DELETE': 0,
               'GET': 6,
               'POST': 2,
               'PUT': 1}

我想使用列值IP,DELETE,DELETE,POST,PUT转换为数据框

IP密钥不在我的位

import dataframe
pd.DataFrame([out])
df.columns =['IP', 'DELETE', 'POST', 'PUT']

2 个答案:

答案 0 :(得分:0)

您可以这样做:

df = pd.DataFrame(columns=['DELETE', 'POST', 'PUT'])
for item in out:
    list_dict = []
    list_dict.append({'DELETE':out[item]['DELETE'], 'POST':out[item]['POST'], 'PUT':out[item]['PUT']})
    df= df.append(list_dict)

,然后添加一个名为ID的列。像这样:

df['ID']=[0]*len(df)

在这里,我将所有ID设为0。您可以根据自己的数据进行更改。

答案 1 :(得分:0)

out =  {'1.2.2.2': {'DELETE': 1,
                'GET': 5,
                'POST': 1,
                'PUT': 3},
 '2.2.2.2': {'DELETE': 1,
                   'GET': 6,
                   'POST': 3,
                   'PUT': 3},
 '3.3.3.3': {'DELETE': 0,
               'GET': 6,
               'POST': 2,
               'PUT': 1}}

创建要包含的列的列表

cols = ['IP', 'DELETE', 'POST', 'PUT']

以下内容将转置数据帧,重置索引,并将先前的索引重命名为“ IP”

pd.DataFrame(out).T.reset_index().rename(columns={'index':'IP'})[cols]

此输出将是:

    IP  DELETE  POST    PUT
0   1.2.2.2 1   1   3
1   2.2.2.2 1   3   3
2   3.3.3.3 0   2   1
相关问题