我正在尝试创建一个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)
答案 0 :(得分:1)
添加unqiue
(或顺序不重要时添加set
)
df.groupby(['...']).agg(lambda x : ','.join(x.unique())) # set(x)