Home > Software engineering >  how to convert long dataframe to short dataframe in pandas
how to convert long dataframe to short dataframe in pandas

Time:01-28

I have a dataset like this

 name     scalar
tovar   "Блэк Джэк"
Qtty    1
povar   Алиева Максадой
date    2022-01-01
time    18:37:08
tovar   "Блэк Джэк cn "
Qtty    1
povar   Алиева Максадой
date    2022-01-18
time    21:58:50
tovar   "Блэк Джэк vip"
Qtty    2
povar   Алиева Максадой
date    2022-01-01
time    18:07:08

i want to convert it to wide view

tovar      Qtty      povar             date       time
Блэк Джэк   1   Комилова Гулноза    2022-01-22  10:05:01
4 сезона С. 2   Комилова Гулноза    2022-01-23  12:24:16

I beg your pardon, I could not provide images of what I want to get in the end

CodePudding user response:

Create a dummy variable to get index rows then pivot your dataframe:

out = df.assign(index=df['name'].eq('tovar').cumsum()) \
        .pivot('index', 'name', 'scalar')[df['name'].unique()] \
        .rename_axis(index=None, columns=None)
print(out)

# Output
             tovar Qtty            povar        date      time
1      "Блэк Джэк"    1  Алиева Максадой  2022-01-01  18:37:08
2  "Блэк Джэк cn "    1  Алиева Максадой  2022-01-18  21:58:50
3  "Блэк Джэк vip"    2  Алиева Максадой  2022-01-01  18:07:08
  •  Tags:  
  • Related