Использование столбцов в качестве значений ячеек в Pandas

#python #pandas

#python #pandas

Вопрос:

Транспонирование / приведение моего DF в новую форму.

 DF =
   Id music_item playlist_owner                playlist                entity_name
0   0   tune 6-9       my 14-15  elrow Guest List 17-32                        O O
1   1        O O  leticia 28-34      animal humor 36-47  157 Riverside Avenue 4-23
 

в

 DF =
   Id     Goal            Loc
0   0    music_item      tune 6-9    
1   0    playlist_owner  my 14-15
2   0    playlist        elrow Guest List 17-32
3   1    entity_name     157 Riverside Avenue 4-23
4   1    playlist_owner  leticia 28-34
5   1    playlist        animal humor 36-47
 
 

Есть ли способ это сделать?

Ответ №1:

ДА. Я не могу воспроизвести ваш фрейм данных из-за того, как вы его разместили, но ниже вы получите то, что вам нужно.

Предполагая, что ваш фрейм данных называется df, вы можете впоследствии использовать pd.melt() и переименовывать столбцы:

 new_df = pd.melt(df,id_vars='Id')    
new_df.columns = ['Id','Goal','Loc']
 

который печатает:

 new_df
Out[59]: 
   Id            Goal                     Loc
0   0      music_item                tune 6-9
1   1      music_item                     O O
2   0  playlist_owner                my 14-15
3   1  playlist_owner           leticia 28-34
4   0        playlist  elrow Guest List 17-32
5   1        playlist      animal humor 36-47
6   0     entity_name                     O O
7   1     entity_name             Avenue 4-23
 

Комментарии:

1. Именно то, что мне было нужно! Спасибо 🙂