• Python去重excel表并合并重复项的指定列


    1. # 根据“客户名称”分组,然后对每一组数据进行处理
    2. for _, group in df2[df2['客户名称'].notnull()].groupby(df2['客户名称'].str.lower()):

    这行代码首先通过df2['客户名称'].notnull()条件筛选出不为空的行,然后使用groupby函数按照"客户名称"列进行分组。循环迭代每一个分组时,group变量表示当前分组的数据。

    1. # 将重复行的"产品中文名称"合并到第一行内
    2. group["产品名字"] = group["产品名字"].apply(lambda x: x if isinstance(x, str) else "")
    3. group.loc[:, "产品名字"] = group["产品名字"].str.cat(sep=";")

    将每个分组内的重复行的"产品名字"列合并到第一行内。首先,通过apply()函数和lambda表达式将"产品名字"列中的非字符串值(如NaN)替换为空字符串。然后,使用str.cat()函数将"产品名字"列中的多个值以分号分隔连接在一起,并赋值给第一行。

    1. # 去重
    2. df_unique = group.drop_duplicates(subset=["客户名称"], keep='first')
    3. df_duplicate = group.drop(df_unique.index)

    对分组内的数据进行去重操作。使用drop_duplicates()函数可以去除"客户名称"列的重复行,保留第一次出现的行,并将结果赋值给df_unique变量。然后,从原始分组数据中删除df_unique变量中包含的行,得到重复的行,并将结果赋值给df_duplicate变量。

    1. # 将处理后的数据赋值回原始数据
    2. df2.loc[df_unique.index] = df_unique
    3. df2.drop(df_duplicate.index, inplace=True)

    最后,通过使用loc属性和index将处理后的去重数据df_unique赋值回原始数据df2。同时,使用drop()函数删除原始数据中的重复行df_duplicate

  • 相关阅读:
    Ioc容器加载过程-bean生命周期源码解析
    vue-pdf在vue框架中的使用
    vite+rollup
    源码中的设计模式--模板方法模式
    高校教务系统登录页面JS分析——长沙理工大学教务系统
    LeetCode-2. 两数相加-Java-medium
    SpringMVC原理学习(三)获取参数名
    get_started_3dsctf_2016【BUUCTF】(两种解法)
    从云计算到函数计算
    .Net平台
  • 原文地址:https://blog.csdn.net/EaSoNgo111/article/details/133904483