(учитывая, что у вас нет повторяющихся индексов)
Выберите индексы, которые вы хотите заполнить адресом Adress1:
Address1_index = df.loc[!df.Address1.empty() and !df.Address1-State.empty() and !df.Address1-City.empty()].index
, затем поместите данные Address1 в желаемые столбцы:
df.loc[Adress1_index, ["Adress", "State", "City"]] = df.loc[Adress1_index, ["Adress1", "Adress1-State", "Adress1-City"]]
Теперь выберите индексы, которые вы хотите заполнить адресом2:
Address2_index = df.loc[df.Adress1.empty() or df.Adress1-State.empty() or df.Adress1-City.empty()].index
, затем заполните их также:
df.loc[Adress2_index, ["Adress", "State", "City"]] = df.loc[Adress2_index, ["Adress2", "Adress2-State", "Adress2-City"]]
Удалите ненужные столбцы:
df.drop(["Address1", "Adress1-State", "Adress1-City", "Address2", "Adress2-State", "Adress2-City"], axis = 1, inplace = True)