need to rewrite some code I already have. It insert columns where a 'Standard Deviation' column is missing. To do that it checks if the preceding column is a "variable" column, and if there already is a "Standard Deviation" column after it.
Right now I'm using a while loop that iterates through the columns checking df.iloc[1,x] and df.iloc[1,x+1].
i = 7
j = len(df.columns)-1
while i < j:
if df.loc[1,i] != 'Standard Deviation' and df.loc[1,i] != 'Replicates' and df.loc[1,i] != 'Method':
if df.loc[1,i+1] != 'Standard Deviation':
df.insert(i+1,'Standard Deviation',np.nan)
df.columns = pd.RangeIndex(df.columns.size)
df.loc[1,i+1]='Standard Deviation'
i+=1
j = len(df.columns)-1
df.insert(len(df.columns),'Standard Deviation',np.nan)
df.columns = pd.RangeIndex(df.columns.size)
df.loc[1,len(df.columns)-1]='Standard Deviation'
Snippet from dataframe (hard to make sense of it):
50 51 52 53 54 55 56 57 58
0 Pour Point (°C) Pour Point (°C) Pour Point (°C) Pour Point (°C) Boiling Point Distribution- Temperature (°C) Boiling Point Distribution- Temperature (°C) Boiling Point Distribution- Temperature (°C) Boiling Point Distribution- Temperature (°C) Boiling Point Distribution- Temperature (°C)
1 Pour point Standard Deviation Replicates Method Initial Boiling Point 5% 10% 15% 20%
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 < -25 NaN NaN ASTM D97 NaN 35 52 70 88
4 < -25 NaN NaN ASTM D97 NaN 56 84 104 135
5 -6 NaN NaN ASTM D97 NaN 115 166 224 259
6 24 NaN NaN ASTM D97 NaN 279 303 322 339
Right now the code works and gives the expected outcome. I just want to rewrite it in a more efficient/elegant way.
I don't know how to do it without iterating over the columns to specify checking df.iloc[1,i] and df.iloc[1,i+1]