利用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')

下面是運行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM