У меня есть кадр данных, который выглядит следующим образом:
df1 = pd.DataFrame({'Name':['Row 1', 'Row 2', 'Row 3', 'Row 4'],
'Original':['A, B, C, D, E', 'A, B, C', 'A, B, C, D, E, F, G, H, I, J, K, L', 'A']})
и я хотел бы разбить исходный столбец на несколько столбцов, но сгруппировать их в группы по 5, например:
df2 = pd.DataFrame({'Name':['Row 1', 'Row 2', 'Row 3', 'Row 4'],
'Group 1':['A, B, C, D, E', 'A, B, C', 'A, B, C, D, E', 'A'],
'Group 2':['', '', 'F, G, H, I, J', ''],
'Group 3':['', '', 'K, L', '']})
Я пытался сделать что-то подобное, но я уверен, что есть лучший способ сделать это ...
df1 = pd.DataFrame({'Name':['Row 1', 'Row 2', 'Row 3', 'Row 4'],
'Original':['A, B, C, D, E', 'A, B, C', 'A, B, C, D, E, F, G, H, I, J, K, L', 'A']})
df2 = df1.join(df1['Original'].str.split(', ', expand=True).add_prefix('Individual '))
df2 = df2.fillna('')
df2['Group 1'] = (df2['Individual 0'] + ', ' +df2['Individual 1'] + ', ' + df2['Individual 2'] + ', ' + df2['Individual 3'] + ', ' + df2['Individual 4'] + ', ').str.strip(', ')
df2['Group 2'] = (df2['Individual 5'] + ', ' +df2['Individual 6'] + ', ' + df2['Individual 7'] + ', ' + df2['Individual 8'] + ', ' + df2['Individual 9'] + ', ').str.strip(', ')
У кого-нибудь есть предложения? Может быть, что-то вроде oop, которое делится на максимальное количество или количество элементов в исходной ячейке?
Пожалуйста и спасибо!