2017-04-10 1 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

私は、元のデータフレームの数字のインデックスを持っていた場合、これらの値の代わりに、その数値にする必要がすべての列を維持する方法がありますインデックスではありませんか? –

関連する問題