App下載

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

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

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

一、去重操作

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

(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é)果不會自動排序。

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

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

二、統(tǒng)計操作

第一種方法非常簡單,這也是因為這個數(shù)組比較簡單,可以直接使用?len(array)?取列表的長度即可。

不過我建議使用的是第二種方法,使用 pandas 庫。

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

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行,如果你想要打印多一點,你可以傳入?yún)?shù)。例如,你想打印20行,只需要傳入20即可,?head(20)?.

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

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

三、總結(jié)

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

0 人點贊