Home > Software design >  Python Pandas Dataframe: Divide values in two rows based on column values
Python Pandas Dataframe: Divide values in two rows based on column values

Time:09-29

I have a pandas dataframe:

A    B    C    D

1    1    0    32
          1    4
     2    0    43
          1    12
     3    0    58
          1    34
2    1    0    37
          1    5
[..]

where A, B and C are index columns. What I want to compute is for every group of rows with unique values for A and B: D WHERE C=1 / D WHERE C=0.

The result should look like this:

A    B    NEW    

1    1    4/32
     2    12/43
     3    58/34
2    1    37/5
[..]

Can you help me?

CodePudding user response:

Use Series.unstack first, so possible divide columns 0,1:

new = df['D'].unstack()

new = new[1].div(new[0]).to_frame('NEW')
print (new)
          NEW
A B          
1 1  0.125000
  2  0.279070
  3  0.586207
2 2  0.135135
  • Related