如何根据多个字段分组并显示所有列

时间:2019-05-22 14:25:30

标签: python-3.x pandas csv pandas-groupby data-analysis

我正在尝试创建一个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的值

我会将具有相同值的行合并为一行。除上述以外的其他列将具有逗号分隔值

输入CSV文件link

预期输出CSV link

我尝试的代码:

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 个答案:

答案 0 :(得分:1)

添加unqiue(或顺序不重要时添加set

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