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

2024-06-26 02:12:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python字典列表,其中有不同的键(Response键在all中),我想将它转换成Panda数据帧,这样所有的键值都显示为行,并且Response键值作为列重复。例如,下面的列表

[{'回复':1,“工作生活”:5,“生活家庭”:2,“家庭平衡”:10}, {'回应':2,'激励管理':11,'管理职业':1,'职业抱负':4,'抱负发展':8},{'回应':3,'激励员工':15,'员工管理者':9,'经理提问':5,'询问员工':9}]

应成为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

Tags: 数据列表response家庭员工peoplefamilymanagement
1条回答
网友
1楼 · 发布于 2024-06-26 02:12:08

这可能就是你要找的。使用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是您的字典数据。请记住,词典不是按顺序排列的,所以总是期望与你的问题相同的顺序是不合理的。你知道吗

相关问题 更多 >