使用pandas将字典从宽格式转换为长格式

时间:2017-11-15 18:05:03

标签: python pandas dictionary dataframe pandas-groupby

我在Python中有一个字典列表,其中包含不同的键(响应键全部存在),我想将其转换为Panda Dataframe,以便所有键值显示为响应键值重复为列。例如,列表

[ {' 回复':1,'工作生活':5,'生活家庭&# 39;:2,'家庭平衡':10}, {' 回复':2,'鼓励管理':11,'管理事业':1,'职业抱负& #39;:4,'愿望发展':8},{' 回复':3,'鼓励人们':15 ,'人事经理':9,'经理要求':5,'                 

应该成为3列数据框

Response | Attribute | Value
1, work life, 5
1, life family, 2
1, family balance, 10
2, encouragement management, 11
2, management career, 1
2, career aspirations, 4
2, aspirations develop, 8
3, encourage people, 15
3, people managers, 9
3, managers ask, 5
3, ask employees, 9

1 个答案:

答案 0 :(得分:2)

这可能是您正在寻找的。使用stack,然后重置索引和列名称。

df = pd.DataFrame(d).set_index('Response').stack().reset_index()
df.columns = ['Response', 'Attribute', 'Value']

df

    Response                 Attribute  Value
0          1            family balance   10.0
1          1               life family    2.0
2          1                 work life    5.0
3          2       aspirations develop    8.0
4          2        career aspirations    4.0
5          2  encouragement management   11.0
6          2         management career    1.0
7          3             ask employees    9.0
8          3          encourage people   15.0
9          3              managers ask    5.0
10         3           people managers    9.0

d是您的字典数据。请记住,词典未订购,因此始终期望与您的问题中的订单相同是不合理的。