#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]