Зараз, коли ми живемо в епоху великих обсягів даних, виникає безліч ситуацій, коли необхідно об’єднати рядки зі спільним стовпчиком ID в Python, щоб отримати один рядок. Це особливо актуально в обробці даних, коли ми маємо справу з наборами даних, що містять дубльовані записи, які потрібно об’єднати в один рядок за унікальним ідентифікатором.
1 |
Я майже завершив свій проект, але виникли проблеми з дублікатами, яких я не хочу бачити. Я б хотів, щоб вони були об'єднані в один рядок. |
Фінальний вивід у Excel виглядає наступним чином:
1 2 3 |
P ID T ID C ID Q1 Q2 Q3 318 495 00036282 NO Yes All cost covered 319 496 00036283 Yes Yes No additional costs |
На даний момент цей вивід містить 3130 рядків. Я б хотів, щоб виглядав він так у Excel:
1 2 3 |
P ID T ID C ID Q1 Q2 Q3 318 495 00036282 NO Yes All cost covered 319 496 00036283 Yes Yes No additional costs |
Мій ідеальний вихід містить близько 900 рядків, і я хочу, щоб всі стовпці були присутні в кінцевому виводі. До цього часу я спробував:
1 2 3 4 |
Видалення дублікатів за допомогою функції 'drop_duplicates()'. Групування за ідентифікатором власності та агрегація рядків. Конкатенація рядків з аналогічними ідентифікаторами власності зі збереженням унікальних значень. Ручна перевірка набору даних на наявність будь-яких невідповідностей або шаблонів (хоча я можу їх знайти, це не може належним чином вирішити проблему, оскільки потребує версії Excel як підтвердження, що є непродуктивним з точки зору автоматизації). |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Групування за P Id і агрегація за допомогою суми для числових стовпців df_FinalOutput_summed = df_FinalOutput.groupby('P Id').sum().reset_index() df_FinalOutput_summed df_FinalOutput = df_FinalOutput.groupby('P Id').agg({ 'T Id': 'last', 'C ID': 'last', 'Q1': 'last', 'Q2': 'last', 'Q3': 'last' }).reset_index() # Скидання індексу після групування df_FinalOutput.reset_index(drop=True, inplace=True) # Відображення кінцевого виводу DataFrame df_FinalOutput |
Цей код майже відповідає моїм потребам, але я не хочу просто вибирати останній рядок. Я хочу об’єднати рядки, щоб отримати один стовпець з усіма деталями.