Как группировать на основе нескольких полей и отображать все столбцы - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь создать 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

ex: в моем случае

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

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

Входной файл 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)

1 Ответ

1 голос
/ 22 мая 2019

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

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