0

I'm looking for a way to transform table in pandas, what i have:

date BMW Audi Mercedes
01.05.2020 100 111 1
02.05.2020 200 222 2
03.05.2020 300 333 c

here's what i need:

car date value
BMW 01.05.2020 100
BMW 02.05.2020 200
BMW 03.05.2020 300
Audi 01.05.2020 111
Audi 02.05.2020 222
Audi 03.05.2020 333
Mercedes 01.05.2020 1
Mercedes 02.05.2020 2
Mercedes 03.05.2020 3

I found some solution, but i am not sure it is good:

import pandas as pd

df = pd.read_excel(r".\test.xlsx")


dfs = []

for col in df:
    if col == "date":
        continue
    df1 = df.loc[:, ['date', col]]
    df1.rename(columns={col : "value"}, inplace = True)
    df1['car'] = col

    dfs.append(df1)

final_df = pd.concat(dfs, axis=0, ignore_index=True)

please let me know if there is a better way to do this, thanks!

AnnAc0nda
  • 38
  • 6

0 Answers0