Фрейм данных Pandas дублирует строки с разделением списка в классе?

#python #pandas #list #dataframe #data-manipulation

#python #pandas #Список #фрейм данных #манипулирование данными

Вопрос:

У меня есть фрейм данных со строками / записями, подобными этому:

Данные:

 id age sex weight class
0  30  1   65     ['AA', 'BB']
1  40  0   76     ['AA', 'CC', 'DD']
 

Мой класс представляет собой список с более чем одним значением, я хочу дублировать строки, оставляя в каждой значение списка.

Желаемый результат:

 id age sex weight class
0  30  1   65     ['AA']
1  30  1   65     ['BB']
2  40  0   76     ['AA']
3  40  0   76     ['CC']
4  40  0   76     ['DD']
 

Как я могу сделать это для всего фрейма данных, который имеет подобную структуру строк?

порядок идентификаторов не имеет большого значения.

Ответ №1:

Вы можете explode столбец класса:

 df2 = df.set_index('id').explode('class').reset_index(drop=True)
df2['class'] = df2['class'].apply(lambda x: [x])
df2
   age  sex  weight class
0   30    1      65  [AA]
1   30    1      65  [BB]
2   40    0      76  [AA]
3   40    0      76  [CC]
4   40    0      76  [DD]