App下載

Python 對(duì)數(shù)據(jù)的去重處理以及數(shù)據(jù)統(tǒng)計(jì)

甄瀟灑 2021-10-19 15:37:27 瀏覽數(shù) (7105)
反饋

當(dāng)前,Python 語(yǔ)言在大數(shù)據(jù)領(lǐng)域可以說(shuō)非常的熱門,這是因?yàn)?Python 簡(jiǎn)潔、易學(xué)、擁有豐富的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)。在當(dāng)今這個(gè)數(shù)據(jù)社會(huì),尤其是做計(jì)算機(jī)行業(yè)的,少不了要和數(shù)據(jù)打交道。今天就和大家分享一些關(guān)于 Python 數(shù)據(jù)的簡(jiǎn)單應(yīng)用,如何對(duì)重復(fù)的數(shù)據(jù)進(jìn)行去重處理以及對(duì)處理后的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)。

一、去重操作

去重操作在處理數(shù)據(jù)的過(guò)程中是少不了的。例如:我們想知道一個(gè)班上有多少個(gè)人擔(dān)任了班級(jí)職位,但有可能有的人身兼多職,這時(shí)候就需要對(duì)數(shù)據(jù)進(jìn)行去重。下面以簡(jiǎn)單地?cái)?shù)字列表為例,和大家介紹三種簡(jiǎn)單地去重操作:

(1)循環(huán)去重

array = [1,2,3,3,2,3,4,2,4,3,1,2,6,3,3,2,4,2,3,4,6,2,3,6,4,7,5,4,3,5,6,7,9,5,4,6,8,9,5,4,5,3,6,7,8,5,4,6,8,4,5,6,7]
new_array = []
for i in array:
if i in new_array:
continue
else:
new_array.append(i)
print(new_array)

輸出結(jié)果:


(2)集合特性set()

array = [1,2,3,3,2,3,4,2,4,3,1,2,6,3,3,2,4,2,3,4,6,2,3,6,4,7,5,4,3,5,6,7,9,5,4,6,8,9,5,4,5,3,6,7,8,5,4,6,8,4,5,6,7]
new_array = list(set(array))
print(new_array)

輸出結(jié)果:


(3)使用keys()方式.

array = [1,2,3,3,2,3,4,2,4,3,1,2,6,3,3,2,4,2,3,4,6,2,3,6,4,7,5,4,3,5,6,7,9,5,4,6,8,9,5,4,5,3,6,7,8,5,4,6,8,4,5,6,7]
new_array = list({}.fromkeys(array).keys())
print(new_array)

輸出結(jié)果:


比較以上三種去重方式:

(1)循環(huán),顯然就比較繁瑣,而且結(jié)果不會(huì)自動(dòng)排序。

(2)set()方法,需要對(duì)集合有一定的了解,結(jié)果是會(huì)自動(dòng)排序的。

(3)keys()方法,需要對(duì)字典有一定的了解,雖然比循環(huán)簡(jiǎn)短許多,但是和循環(huán)一樣,結(jié)果不會(huì)進(jìn)行自動(dòng)排序。

二、統(tǒng)計(jì)操作

第一種方法非常簡(jiǎn)單,這也是因?yàn)檫@個(gè)數(shù)組比較簡(jiǎn)單,可以直接使用?len(array)?取列表的長(zhǎng)度即可。

不過(guò)我建議使用的是第二種方法,使用 pandas 庫(kù)。

注:說(shuō)一句廢話,如果您對(duì) Python 大數(shù)據(jù)有很深的興趣,那么學(xué)習(xí) pandas 庫(kù)是非常有必要的。

import pandas as pd
array = [1,2,3,3,2,3,4,2,4,3,1,2,6,3,3,2,4,2,3,4,6,2,3,6,4,7,5,4,3,5,6,7,9,5,4,6,8,9,5,4,5,3,6,7,8,5,4,6,8,4,5,6,7]
sr = pd.Series(array)
print(sr.head())
print(sr.count())
print(sr.value_counts())
print(sr.value_counts().count())

輸出:



?head()?方法是只打印列表中的前5行,如果你想要打印多一點(diǎn),你可以傳入?yún)?shù)。例如,你想打印20行,只需要傳入20即可,?head(20)?.

?count()?方法是對(duì)列表進(jìn)行統(tǒng)計(jì)。從打印結(jié)果可以看到,這個(gè)數(shù)組一共有 53 個(gè)數(shù)值。

?value_counts()?方法是對(duì)列表進(jìn)行去重,然后重新返回一個(gè)新的列表,同時(shí)默認(rèn)按照從多到少排序。再用?count()?方法就可以知道去重后的數(shù)值一共 9 個(gè)。

三、總結(jié)

以上就是關(guān)于使用 Python 對(duì)數(shù)字?jǐn)?shù)組的去重以及統(tǒng)計(jì)的內(nèi)容。

0 人點(diǎn)贊