2017-04-10 35 views
2

我与熊猫合作减去重复计算值从行,有一个数据帧,看起来像下面这样:在数据帧

Module Position Layout Count 
x  a   Desktop 50 
x  a   Mobile 20 
y  a   Desktop 100 
y  a   Mobile 30 
z  b   Desktop 80 
z  b   Mobile 20 

我将如何能够从桌面计数减去莫比尔县当模块和位置值匹配,以获得所产生的数据框:

Module Position Layout Count 
x  a   Desktop 30 
x  a   Mobile 20 
y  a   Desktop 70 
y  a   Mobile 30 
z  b   Desktop 60 
z  b   Mobile 20 

回答

3
d1 = df.set_index(['Module', 'Position', 'Layout']) 
d2 = d1.unstack().diff(-1, axis=1).stack().combine_first(d1).reset_index() 
print(d2) 

    Module Position Layout Count 
0  x  a Desktop 30.0 
1  x  a Mobile 20.0 
2  y  a Desktop 70.0 
3  y  a Mobile 30.0 
4  z  b Desktop 60.0 
5  z  b Mobile 20.0 
+0

如果我是对原有的数据帧数字索引,有没有保持这些价值,而不必是数字,每列的方式不是索引? –