我有一个包含一些列的pandas数据框。我想用不同的方式重新安排。示例如下:
time,name,feature,value
33 20 May 2016 14:00:00 -0700,John,badL,2
45 19 May 2016 18:00:00 -0700,John,badL,1
120 17 May 2016 11:00:00 -0700,John,badL,1
220 20 May 2016 14:00:00 -0700,John,totalL,20
450 19 May 2016 18:00:00 -0700,John,totalL,15
330 18 May 2016 15:00:00 -0700,Mary,badL,2
330 18 May 2016 15:00:00 -0700,Mary,totalL,20
550 21 May 2016 12:00:00 -0700,Mary,adCmd,4
700 22 May 2016 16:00:00 -0700,Mary,PC,3
800 22 May 2016 16:00:00 -0700,Mary,eCon,200
注意:第一列值(time)前面是索引值(3345120,…)。 从上面的数据帧中,我希望得到的数据帧为:
^{pr2}$注:5月17日,约翰没有任何总计。所以,用0填充。在
有什么优雅的方法吗?我将时间字段设置为迄今为止,那么,比较……看起来很乏味。对于上面的例子,我只有两个“特性”(badL,total)。我以后再吃几杯。在
这就是我所拥有的-但是,它为第二个特性添加了一个不同的行…(总计)…而不是放在同一行中。在
for f in ['badL', 'totalL']:
dff = df[df.feature == f]
print dff
if len(dff.index) > 0:
fullFeatureDf[f] = dff.feature_value
这是
df.pivot
的作业:设置
使用
^{pr2}$unstack
然后取消堆叠以执行旋转。它获取行索引的一部分并将其移动为列。在
在精神上,这是一个相同的解决方案亚基姆皮罗琴科。只是一个稍微不同的方法。这对我来说更直观,但对你可能不是。在
相关问题 更多 >
编程相关推荐