利用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')
下面是运行结果: