Как сгруппировать по нескольким полям и отобразить все столбцы

Я пытаюсь создать CSV-файл, в котором, если несколько столбцов совпадают, я объединяю строку с аналогичным значением в одну строку.

например:

Вход :

Party_No install_date  Start_date  End_date  Product_family  Version City state 
 111     24-05-2018    25-05-2019 21-03-2020  storage           1     LA   USA
 111     24-05-2018    25-05-2019 21-03-2020  storage           1     KA   USA
 111     24-05-2018    25-05-2019 21-03-2020   storage          2     PA   UK

Выход

Party_No install_date  Start_date  End_date  Product_family Version City   state 
111     24-05-2018    25-05-2019 21-03-2020  storage         1,2 LA,KA,PA UK,USA

пример: в моем случае

если значение party_number , item_install_date , Contract_subline_date , Contract_Subline_end_date , Instance_family

я объединим строку с одинаковым значением в одну строку. другой столбец, кроме упомянутого выше, будет иметь значение, разделенное запятыми

Входной файл CSV связь

Ожидаемый выходной файл CSV связь

Код, который я пробовал:

import pandas as pd
import np

  df = None
  df = pd.read_csv("Export.csv")
  df.fillna(0,inplace=True)



pf=df.groupby(['PARTY_NUMBER','ITEM_INSTALL_DATE','CONTRACT_SUBLINE_START_DATE','CONTRACT_SUBLINE_END_DATE','INSTANCE_PRODUCT_FAMILY']).agg([','.join])

pf.to_csv("result1.csv", index=False)
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
0
94
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавление unqiue (или set, когда порядок не важен)

df.groupby(['...']).agg(lambda x : ','.join(x.unique())) # set(x)

Я пробовал, я получаю «AttributeError: объект DataFrame не имеет атрибута« уникальный »»

RITESH SANJAY MAHAJAN 22.05.2019 16:37

столбцы, указанные в groupby, не печатаются в окончательном выводе

RITESH SANJAY MAHAJAN 22.05.2019 16:47

@RITESHSANJAYMAHAJAN как насчет попробовать df.groupby(['...']).agg(lambda x : ','.join(set(x)))

BENY 22.05.2019 16:48

Set решил проблему повторяющихся значений. но все еще не может видеть столбцы, которые упоминаются в groupby . я получаю только столбцы версии, города, штата... другие столбцы, такие как party_number, install_date, startdate, End date, семейство продуктов, не входят в окончательный вывод... отображаются только версия столбца, город и штат

RITESH SANJAY MAHAJAN 22.05.2019 17:09

@RITESHSANJAYMAHAJAN df.groupby(['...']).agg(lambda x : ','.join(set(x))).reset_index()

BENY 22.05.2019 17:09

Другие вопросы по теме