import pandas as pd
df = pd.DataFrame(
{
"country": ["India", "US", "China"],
"2010": [200, 100, 300],
"2012": [400, 200, 500],
"2015": [800, 400, 700],
}
)
df["abs_change"] = df.apply(
lambda x: max(x[df.columns[-3:]]) - min(x[df.columns[-3:]]), axis=1
)
print(df.iloc[df[["abs_change"]].idxmax()])
Это может быть возможным решением вашей проблемы без использования циклов for. Хотя я не уверен на 100% о влиянии на производительность, это может быть лучше, чем использование для циклов.