RT,
本期时间 | 二级商品组名称 | 会员编号 |
20171207 | 办公 | 2216293462 |
20171207 | 洗护 | 6018020335 |
20171207 | 办公 | 2216293462 |
20171208 | 生活日用 | 6000055302 |
20171208 | 办公 | 6018020335 |
20171208 | 生活日用 | 2216293462 |
20171208 | 生活日用 | 2216293462 |
想变为下面这样,筛选这三列重复的行,若2行重复的吧最后一列会员编码删掉,保留前面的第一行:
本期时间 | 二级商品组名称 | 会员编号 |
20171207 | 办公 | 2216293462 |
20171207 | 洗护 | 6018020335 |
20171207 | 办公 | |
20171208 | 生活日用 | 6000055302 |
20171208 | 办公 | 6018020335 |
20171208 | 生活日用 | 2216293462 |
20171208 | 生活日用 |
你是要删除每一天名称重复的最后一条数据?为什么有这种奇怪的操作
诶··业务需求啊··
@佛系程序员: 好吧,那通过gruop by查到每天同名称最后一条数据update呗
@小光: 大神能给出具体的代码示例吗
@佛系程序员: 只有这三个列?,没有唯一标识么
@小光: 其他数据都没有唯一性,我想达到的目的是在没行前两列数据相同的前提下,第三行数据若重复则只保留首次出现的值,若无重复则保持不变
@佛系程序员: 遍历一下数据,每一次遍历就把没出现的商品名称和编号存起来,如果哪一条数据的商品名称和编号和出现过的数据其中一个完全相同,就删除该数据的编号
#list 去重 ids = [1,4,3,3,4,2,3,4,5,6,1] func = lambda x,y:x if y in x else x + [y] lists = reduce(func, [[], ] + ids) print lists
不知道能不能符合你的需求
或者你把他放在一个字典里在遍历的时候就过滤