[英]How to convert dictionary into a pandas df?
我有一本包含键和值列表的字典。 我想制作一个简单的df熊猫,但是,我无法将列表项分解为单独的行。 我当前的方法创建一个df,但将值保留在列表中。 如何拔出它们并将其添加为单独的行?
d = {'Car':['1','2','3'],
'Chicken legs':['4','5','6'],
'Coronary artery bypass graft surgery':['7','8','9','10','11','12']}
df = pd.DataFrame({'Thing':list(d.keys()), 'Values':list(d.values())})
Thing Values
0 Car [1, 2, 3]
1 Chicken_legs [4, 5, 6]
2 Coronary artery bypass graft surgery [7, 8, 9, 10, 11, 12]
预期的最终结果:
Thing Values
0 Car 1
1 Car 2
2 Car 3
3 Chicken_legs 4
4 Chicken_legs 5
5 Chicken_legs 6
6 Coronary artery bypass graft surgery 7
7 Coronary artery bypass graft surgery 8
8 Coronary artery bypass graft surgery 9
9 Coronary artery bypass graft surgery 10
10 Coronary artery bypass graft surgery 11
11 Coronary artery bypass graft surgery 12
只需将字典塞入正确的内容即可:
In [3]: pd.DataFrame({'Thing':k, 'Values':v} for k,V in d.items() for v in V)
Out[3]:
Thing Values
0 Coronary artery bypass graft surgery 7
1 Coronary artery bypass graft surgery 8
2 Coronary artery bypass graft surgery 9
3 Coronary artery bypass graft surgery 10
4 Coronary artery bypass graft surgery 11
5 Coronary artery bypass graft surgery 12
6 Car 1
7 Car 2
8 Car 3
9 Chicken legs 4
10 Chicken legs 5
11 Chicken legs 6
此解决方案不及juanpa.arrivillaga接受的解决方案。
pd.concat([ pd.DataFrame({'Thing': df['Thing'][i], 'Values': pd.Series(df.Values[i])}) for i in range(len(df)) ])
Thing Values
0 Car 1
1 Car 2
2 Car 3
0 Chicken legs 4
1 Chicken legs 5
2 Chicken legs 6
0 Coronary artery bypass graft surgery 7
1 Coronary artery bypass graft surgery 8
2 Coronary artery bypass graft surgery 9
3 Coronary artery bypass graft surgery 10
4 Coronary artery bypass graft surgery 11
5 Coronary artery bypass graft surgery 12
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.