當(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()
?方法是對列表進行去重,然后重新返回一個新的列表,同時默認(rèn)按照從多到少排序。再用?count()
?方法就可以知道去重后的數(shù)值一共 9 個。
三、總結(jié)
以上就是關(guān)于使用 Python 對數(shù)字?jǐn)?shù)組的去重以及統(tǒng)計的內(nèi)容。