I've this dataframe:df1
DP1 DP2 DP3 DP4 DP5 DP6 DP7 DP8 DP9 DP10
OP1 43239.0 46962.0 55858.0 9128.0 30372.0 5932.0 667.0 663.0 0.0 NaN
OP2 146.0 73.0 16647.0 5596.0 1493.0 7175.0 45.0 438.0 NaN NaN
OP3 266279.0 1189.0 1.0 10939.0 17799.0 4702.0 235.0 NaN NaN NaN
OP4 360547.0 56943.0 142271.0 38217.0 1141.0 6757.0 NaN NaN NaN NaN
OP5 380497.0 17946.0 19376.0 0.0 3974.0 NaN NaN NaN NaN NaN
OP6 6151.0 16525.0 17046.0 11532.0 NaN NaN NaN NaN NaN NaN
OP7 142026.0 21999.0 820.0 NaN NaN NaN NaN NaN NaN NaN
OP8 76860.0 102580.0 NaN NaN NaN NaN NaN NaN NaN NaN
OP9 6210.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
OP10 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Total 1281955.0 264217.0 252019.0 75412.0 54779.0 24566.0 947.0 1101.0 0.0 0.0
Variance 160244.0 37745.0 42003.0 15082.0 13695.0 89.0 474.0 1101.0 NaN -0.0
Mack's Sigma 400.0 194.0 205.0 123.0 117.0 90.0 22.0 33.0 NaN -0.0
Variance 160244.0 37745.0 42003.0 15082.0 13695.0 89.0 474.0 1101.0 NaN -0.0
I would like to Find the minimum value of last two entry of Variance row. I would like to last two entries and finding minimum , like in variance last two entries are 474.0 and 1101.0 and that should be added in Nan place.
Output look like
Variance 160244.0 37745.0 42003.0 15082.0 13695.0 89.0 474.0 1101.0 474.0 -0.0
I've tried this code:
minValuesObj = min(df1.loc('Variance'))
Use DataFrame.iloc
with set values by min (there is selected by position, it means for last previous label Variance
use -2
):
df1.iloc[-2, -2] = df1.iloc[-2, -4:-2].min()
Or is possible use Index.get_loc
for position by label name:
pos = df1.index.get_loc('Variance')
df1.iloc[pos, -2] = df1.iloc[pos, -4:-2].min()
Or if need select by Variance
use DataFrame.loc
for seelct by labels, for dynamic columns names use indexing df1.columns
:
df1.loc['Variance', df1.columns[-2]] = df1.loc['Variance', df1.columns[-4:-2]].min()
DP1 DP2 DP3 DP4 DP5 DP6 DP7 \
OP1 43239.0 46962.0 55858.0 9128.0 30372.0 5932.0 667.0
OP2 146.0 73.0 16647.0 5596.0 1493.0 7175.0 45.0
OP3 266279.0 1189.0 1.0 10939.0 17799.0 4702.0 235.0
OP4 360547.0 56943.0 142271.0 38217.0 1141.0 6757.0 NaN
OP5 380497.0 17946.0 19376.0 0.0 3974.0 NaN NaN
OP6 6151.0 16525.0 17046.0 11532.0 NaN NaN NaN
OP7 142026.0 21999.0 820.0 NaN NaN NaN NaN
OP8 76860.0 102580.0 NaN NaN NaN NaN NaN
OP9 6210.0 NaN NaN NaN NaN NaN NaN
OP10 NaN NaN NaN NaN NaN NaN NaN
Total 1281955.0 264217.0 252019.0 75412.0 54779.0 24566.0 947.0
Variance 160244.0 37745.0 42003.0 15082.0 13695.0 89.0 474.0
Mack's Sigma 400.0 194.0 205.0 123.0 117.0 90.0 22.0
DP8 DP9 DP10
OP1 663.0 0.0 NaN
OP2 438.0 NaN NaN
OP3 NaN NaN NaN
OP4 NaN NaN NaN
OP5 NaN NaN NaN
OP6 NaN NaN NaN
OP7 NaN NaN NaN
OP8 NaN NaN NaN
OP9 NaN NaN NaN
OP10 NaN NaN NaN
Total 1101.0 0.0 0.0
Variance 1101.0 474.0 -0.0
Mack's Sigma 33.0 NaN -0.0