Python實(shí)現(xiàn)去除Excel重復(fù)數(shù)據(jù)并統(tǒng)計(jì)重復(fù)次數(shù)
第一部分:數(shù)據(jù)讀取和統(tǒng)計(jì)
程序使用`pd.read_csv`函數(shù)逐塊讀取CSV文件,并將每塊的數(shù)據(jù)類型設(shè)置為字符串。然后使用`pd.Series`創(chuàng)建一個(gè)空的Series對(duì)象`value_counts`,用于存儲(chǔ)每個(gè)值的重復(fù)次數(shù)。使用`chunk.values.ravel()`獲取所有文本數(shù)據(jù),并使用`value_counts`函數(shù)統(tǒng)計(jì)每個(gè)值的重復(fù)次數(shù)。最后,通過`value_counts.add`函數(shù)將每塊的統(tǒng)計(jì)結(jié)果累加到`value_counts`中。
from tqdm import tqdm import pandas as pd # 讀取CSV文件,并指定數(shù)據(jù)類型為字符串 chunksize = 1000000 # 每次讀取的塊大小 value_counts = pd.Series(dtype=int) for chunk in tqdm(pd.read_csv(r"C:\Users\dell\Desktop\表格一.csv", dtype=str, chunksize=chunksize), total=1219): # 獲取所有文本數(shù)據(jù)并統(tǒng)計(jì)每個(gè)值的重復(fù)次數(shù) counts = pd.Series(chunk.values.ravel()).value_counts() value_counts = value_counts.add(counts, fill_value=0)
第二部分:結(jié)果處理和排序
首先,使用`value_counts.reset_index()`將`value_counts`的索引重置,并將列名改為'經(jīng)營范圍'和'重復(fù)次數(shù)'。然后,使用`value_counts.sort_values`按重復(fù)次數(shù)從高到低對(duì)數(shù)據(jù)進(jìn)行排序。
# 重置索引并按重復(fù)次數(shù)從高到低排序 value_counts = value_counts.reset_index() value_counts.columns = ['城市', '重復(fù)次數(shù)'] value_counts = value_counts.sort_values(by='重復(fù)次數(shù)', ascending=False)
第三部分:結(jié)果保存和進(jìn)度條顯示
程序使用`tqdm(total=len(value_counts), desc='Processing')`創(chuàng)建了一個(gè)進(jìn)度條對(duì)象`pbar`,并設(shè)置進(jìn)度條的總長度為`value_counts`的長度。接著,使用`value_counts.to_csv`將排序后的結(jié)果保存到新的CSV文件中,并設(shè)置`index=False`以避免保存索引列。然后,使用`pbar.update()`更新進(jìn)度條,表示處理完成。
最后,關(guān)閉進(jìn)度條并輸出一條完成消息。
# 創(chuàng)建進(jìn)度條 pbar = tqdm(total=len(value_counts), desc='Processing') # 保存結(jié)果到新的CSV文件 value_counts.to_csv(r"C:\Users\dell\Desktop\表格二.csv", index=False) # 更新進(jìn)度條 pbar.update() # 關(guān)閉進(jìn)度條 pbar.close() # 輸出消息 print("已經(jīng)去重完成,丫頭!")
完整代碼
from tqdm import tqdm import pandas as pd # 讀取CSV文件,并指定數(shù)據(jù)類型為字符串 chunksize = 1000000 # 每次讀取的塊大小 value_counts = pd.Series(dtype=int) for chunk in tqdm(pd.read_csv(r"C:\Users\dell\Desktop\表格一.csv", dtype=str, chunksize=chunksize), total=1219): # 獲取所有文本數(shù)據(jù)并統(tǒng)計(jì)每個(gè)值的重復(fù)次數(shù) counts = pd.Series(chunk.values.ravel()).value_counts() value_counts = value_counts.add(counts, fill_value=0) # 重置索引并按重復(fù)次數(shù)從高到低排序 value_counts = value_counts.reset_index() value_counts.columns = ['城市', '重復(fù)次數(shù)'] value_counts = value_counts.sort_values(by='重復(fù)次數(shù)', ascending=False) # 創(chuàng)建進(jìn)度條 pbar = tqdm(total=len(value_counts), desc='Processing') # 保存結(jié)果到新的CSV文件 value_counts.to_csv(r"C:\Users\dell\Desktop\表格二.csv", index=False) # 更新進(jìn)度條 pbar.update() # 關(guān)閉進(jìn)度條 pbar.close() # 輸出消息 print("已經(jīng)去重完成,丫頭!")
總體而言,該程序的目標(biāo)是讀取一個(gè)較大的CSV文件,統(tǒng)計(jì)其中每個(gè)值的重復(fù)次數(shù),并將結(jié)果按重復(fù)次數(shù)從高到低進(jìn)行排序和保存。同時(shí),使用進(jìn)度條顯示處理的進(jìn)度,以提供可視化的反饋。
到此這篇關(guān)于Python實(shí)現(xiàn)去除Excel重復(fù)數(shù)據(jù)并統(tǒng)計(jì)重復(fù)次數(shù)的文章就介紹到這了,更多相關(guān)Python去除Excel重復(fù)數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python?生成多行重復(fù)數(shù)據(jù)的方法實(shí)現(xiàn)
- python列表返回重復(fù)數(shù)據(jù)的下標(biāo)
- Python對(duì)多屬性的重復(fù)數(shù)據(jù)去重實(shí)例
- python Django批量導(dǎo)入不重復(fù)數(shù)據(jù)
- python實(shí)現(xiàn)查找excel里某一列重復(fù)數(shù)據(jù)并且剔除后打印的方法
- python中查找excel某一列的重復(fù)數(shù)據(jù) 剔除之后打印
- Python-pandas返回重復(fù)數(shù)據(jù)的index問題
相關(guān)文章
使用Python可設(shè)置抽獎(jiǎng)?wù)邫?quán)重的抽獎(jiǎng)腳本代碼
這篇文章主要介紹了Python可設(shè)置抽獎(jiǎng)?wù)邫?quán)重的抽獎(jiǎng)腳本,抽獎(jiǎng)系統(tǒng)包含可給不同抽獎(jiǎng)?wù)咴O(shè)置不同的權(quán)重,先從價(jià)值高的獎(jiǎng)品開始抽,已經(jīng)中獎(jiǎng)的人,不再參與后續(xù)的抽獎(jiǎng),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11將labelme格式數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的coco數(shù)據(jù)集格式方式
今天小編就為大家分享一篇將labelme格式數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的coco數(shù)據(jù)集格式方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02python 如何將數(shù)據(jù)寫入本地txt文本文件的實(shí)現(xiàn)方法
這篇文章主要介紹了python 如何將數(shù)據(jù)寫入本地txt文本文件的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09