我正在使用Pandas并拥有一个如下所示的DataFrame:
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
当模块和位置值匹配时,如何从桌面计数中减去移动计数,以获得生成的DataFrame:
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
答案 0 :(得分: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