Вы можете отделить строки, имеющие 1 для каждого столбца. Для этих столбцов замените значение 1 именем, указанным вместе с переименованием имен столбцов
lor_df = df.loc[df["lor"].eq(1), "lor"].rename(columns={"lor": "tags"}).replace(1, "lor")
sor_df = df.loc[df["sor"].eq(1), "sor"].rename(columns={"sor": "tags"}).replace(1, "sor")
. После этого объедините отдельные результаты, используя pandas .concat с последующим удалением столбцы, которые не требуются.
df["tags"] = pd.concat([lor_df, sor_df], sort=False)
df.drop(columns=["lor", "sor"], inplace=True)
Для обеспечения уникальных значений мы можем использовать pandas .DataFrame.drop_duplicates
df.drop_duplicates(inplace=True)
print(df)