You can create a dataframe
data = [
...: ["condition1", 29, 37, 45],
...: ["condition2", "name1", "name2", "name3"],
...: ["condition3", "A", "D", "R"],
...: ["vial-A", 0.8, 1.7, 0.9],
...: ["vial-B", 2.2, 4.5, 2.1],
...: ["vial-C", 0.5, 6.1, 5.3],
...: ]
df = pd.DataFrame(data=data, columns=[1, 2, 3, 4], index=[1])
df_t = df.set_index(1).T
#output
1 condition1 condition2 condition3 vial-A vial-B vial-C
2 29 name1 A 0.8 2.2 0.5
3 37 name2 D 1.7 4.5 6.1
4 45 name3 R 0.9 2.1 5.3
# `col_name` will become the pivot
df_t["col_name"] = df_t[["condition1", "condition2", "condition3"]].apply(
lambda x: f"{x[2]}{x[0]} {x[1]}", axis=1
)
output = (
df_t[["vial-A", "vial-B", "vial-C", "col_name"]]
.set_index("col_name")
.T.rename_axis(index=None, columns=None
)
#output
A29 name1 D37 name2 R45 name3
vial-A 0.8 1.7 0.9
vial-B 2.2 4.5 2.1
vial-C 0.5 6.1 5.3