如下圖:
最近遇到一個這樣的問題,單號相同的記錄里面只保留第一條數據的重量,數據量有上萬條,顯然是不能手工刪除得了,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')
下面是運行結果: