I have a dataframe, df, i want to calculate percentage by row for one of the rows and return 'No' in the other row.
| A | B | C | D |
|---|---|---|---|
| X | 500 | 250 | 50.00 |
| Y | 980 | 700 | 71.42 |
| A | B | C | D | E |
|---|---|---|---|---|
| X | 500 | 250 | 50.00 | 70.08 |
| Y | 980 | 700 | 71.42 | No |
70.08% is got by dividing 50.00/71.42
CodePudding user response:
# shift by a row and divide the two values
df['E']=df['D'].div(df['D'].shift(-1)).fillna('No')
df
A B C D E
0 X 500 250 50.00 0.700084
1 Y 980 700 71.42 No
