利用pandas去重

如下图:

最近遇到一个这样的问题,单号相同的记录里面只保留第一条数据的重量,数据量有上万条,显然是不能手工删除得了,excel里面有没得满足类似需求得函数也不是很清楚,怎么办呢?当然是pandas闪亮登场啦~

这个思路很简单,就是和上一行单号相同的话,就删除当前行的重量

关键就是怎么读取/修改/保存数据,以及读出来的数据是怎么样的,怎么遍历这些问题,参考了一下万能的哔哩哔哩, 看了2/3/4/5 这个问题就迎刃而解啦~~~

直接上代码:

# -*- coding: utf-8 -*-
"""
@author: Jonathan
"""

import pandas as pd  # 导入python的数据处理扩展包pandas,并重命名为pd,该包用于读写excel文件

# pd.Series,pd.DataFrame
data = pd.read_excel('test.xlsx')
data = pd.DataFrame(data)
for i in range(len(data)):
    count = i + 1
    while count < len(data):
        # 和上一行单号相同的话,就删除当前行的重量
        # 当然考虑效率提升的话,结束while循环的时候,可以让i从count出开始执行,这里就不考虑啦
        if data.loc[count]['单号'] == data.loc[i]['单号']:
            data.loc[count, '重量'] = ''
            count += 1
        else:
            break
data.to_excel('new.xlsx')

下面是运行结果:

原文地址:https://www.cnblogs.com/d9e84208/p/12939320.html