How to check the row trend and add the difference and difference percentage in separate columns for the failing cases
An extension to the problem statement how to check each row trend with some tolerance by ignoring the np.nan values in pandas dataframe
import pandas as pd
import numpy as np
d = {'Cell':['A','B','C','D','E'],'D1':[5, 2, 2, 6,6], 'D2':[np.nan, 5, 6, np.nan,3], 'D3':[7,np.nan, 5, 5,np.nan], 'D6':[17, 3, np.nan,np.nan,2]}
df = pd.DataFrame(d)
Cell D1 D2 D3 D6
0 A 5 NaN 7.0 17.0
1 B 2 5.0 NaN 3.0
2 C 2 6.0 5.0 NaN
3 D 6 NaN 5.0 NaN
4 E 6 3.0 NaN 2.0
i want output like this with additional columns diff and diff% along with is_increasing and failing columns
Cell D1 D2 D3 D6 is_increasing? failing diff diff%
0 A 5 NaN 7.0 17.0 True NaN NaN NaN
1 B 2 5.0 NaN 3.0 False [D6] [-2] [40%]
2 C 2 6.0 5.0 NaN False [D3] [-1] [16.6%]
3 D 6 NaN 5.0 NaN False [D3] [-1] [16.6%]
4 E 6 3.0 NaN 2.0 False [D2, D6] [-3,-1] [50%,33%]
Explanation of the columns:
is_increasing --> whether the values are strictly increasing or not
failing --> columns whether strictly increasing is not followed when compared with previous value
diff --> difference of the values where there is failing cases
diff% --> difference in terms of percentages for the failing cases
between (6,5) numbers in the columns
diff column --> 5-6=-1
diff%--> 1-(5/6)=16.6%
Please let me the solution to this problem, i tried different ways but not able to come up with solution.
source https://stackoverflow.com/questions/75440543/how-to-check-the-row-trend-and-add-the-difference-and-difference-percentage-in-s
Comments
Post a Comment