Я думаю, нужно создать логическую маску:
#numeric with strings
df = pd.DataFrame({'Result':['Failed',8.05,9,7]})
mask = pd.to_numeric(df['Result'], errors='coerce').notnull()
df.loc[mask, 'Result'] = df.loc[mask, 'Result'].apply('{:.2f}'.format)
print (df)
0 Failed
1 8.05
2 9.00
3 7.00
Если все строки необходимы, сначала приведите к float
s:
df = pd.DataFrame({'Result':['Failed','8.05','9','7']})
mask = pd.to_numeric(df['Result'], errors='coerce').notnull()
df.loc[mask, 'Result'] = df.loc[mask, 'Result'].astype(float).apply('{:.2f}'.format)
print (df)
Result
0 Failed
1 8.05
2 9.00
3 7.00