Если я правильно понял вашу проблему, я сначала напишу функцию, которая оценит ваши условия и вернет желаемое значение:
def classify(item):
if item["VAR1"] == item["VAR2"][0]*2:
return item["VAR3"]
if item["VAR1"] == item["VAR2"]:
return item["VAR4"]
if item["VAR1"] == item["VAR2"][1]*2:
return item["VAR5"]
return 0 # what if none is true?
Затем примените его к вашему фрейму данных, указав новый столбец:
df["VAR6"] = df.apply(classify, axis=1)
# You can also drop the middle columns if needed
df.drop(["VAR3", "VAR4", "VAR5"], axis=1, inplace=True)
Выход:
VAR1 VAR2 VAR6
ID
1 TT TG 0.01
2 CC TC 0.56
3 GG AG 0.70
4 TC TC 0.48
5 AG AG 0.46
6 GG TG 0.65
7 TT TC 0.06
8 TT CT 0.68
9 GT GT 0.10