Задать вопрос
@vitafon007

Как в сделать Pandas объединение строк группирую по определнному столбцу?

Не могу сформулировать вопрос, чтобы искать ответ.
Суть такая: приходит xlsx пример данных на скриншоте.
Необходимо по наличию данных в первом столбце объединить все строки до следующего наличия данных.
Пример результата также на скриншоте.
65b395d8c8dc5305437148.png
Скриншот приложил
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Ну на сам деле задачка на 5 минут, есть определенные методы заполнения пропущенных значений, 'ffill' forward fill и 'bfill' backward fill. Они и есть ключ к решению, далее группировка происходит без проблем, и дальнешее дело техники, при чем многими способами, например так.
f = pd.DataFrame({
    'A':['a',np.NaN,np.NaN,'b',np.NaN,np.NaN,np.NaN,'v',np.NaN,np.NaN,'d',np.NaN,np.NaN],
    'B':['foo','foo','bar','bar','bar','foo','bar','foo','bar','foo','bar','foo','bar']
})
result = (
    df
    .groupby(df['A']
    .fillna(method='ffill'))['B']
    .apply(lambda x: ','.join(x))
    .reset_index()
)
result
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
otdameskapizm
@otdameskapizm
Помог ответ? Отметь решением...
Ну я бы на Вашем месте просто предварительно сделал обработку файла в Power Query путем заполнения данного ряда "вниз". (раз уж это файл .xlsx). и уже далее бы просто сгруппировал по первому столбцу, используя для агрегации функцию "list".

1) Для первой части решения проблемы Вам понадобится вот это: https://learn.microsoft.com/ru-ru/power-query/fill...
2) Для второй части - вот это: https://stackoverflow.com/questions/22219004/how-t...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы