Мой исходный фрейм данных выглядит следующим образом:
file
col1
col2
A
ячейка 1
ячейка 2
B
ячейка 3
ячейка 4
A
ячейка 5
ячейка 6
B
ячейка 7
ячейка 8
Я выполнил группировку, чтобы сгруппировать кадр данных по ФАЙЛУ, а затем добавил желаемый новый столбец, и я получил вывод ниже.
файл
col1
col2
папка
A
[ячейка 1, ячейка 5]
[ячейка 2, ячейка 6]
[файл1, файл2]
B
[ячейка 3, ячейка 7]
[ячейка 4, ячейка 8]
[file1, file2]
Теперь я хочу разгруппировать приведенный выше фрейм данных в исходный формат, включив при этом этот новый столбец. Как я могу это сделать? Мой фактический фрейм данных огромен и имеет много строк и столбцов, использование итераций неэффективно и довольно медленно. Есть ли какая-либо функция, которую можно применить ко всему кадру данных вместо перебора по столбцам?
Окончательный желаемый результат:
файл
заголовок 1
заголовок 2
папка
A
ячейка 1
ячейка 2
файл1
B
ячейка 3
ячейка 4
файл1
A
ячейка 5
ячейка 6
файл2
B
ячейка 7
ячейка 8
file2
Я сделал следующее:
Код: Выделить всё
dfg = df.groupby('FILE').agg(pl.all()) #to group them first time
newdf = dfg.with_columns(pl.repeat([file1,file2,file3], dfg.height) #adding desired column
PS — Обновлена опечатка в конечном формате таблицы. В столбце «Файл», поскольку записи повторяются через несколько строк, им следует присвоить новое имя «папки».
Подробнее здесь: https://stackoverflow.com/questions/769 ... -in-python
Мобильная версия