Вы можете сжать имена столбцов и значения из первой строки, чтобы разделить их по конвейеру, а затем соединить результирующий список с символом новой строки, чтобы поместить все в отдельную строку.
import pandas as pd
df = pd.DataFrame([{"Type": "XYZ", "ID": 999, "From": "Tony", "To": "Andy"}])
print(
"\n".join(["|".join([col, str(val)]) for col, val in zip(df.columns, df.iloc[0])])
)