Python 对数据的去重处理以及数据统计

2021-10-19 15:37:27 浏览数 (7492)

当前,Python 语言在大数据领域可以说非常的热门,这是因为 Python 简洁、易学、拥有丰富的标准库和第三方库。在当今这个数据社会,尤其是做计算机行业的,少不了要和数据打交道。今天就和大家分享一些关于 Python 数据的简单应用,如何对重复的数据进行去重处理以及对处理后的数据进行统计。

一、去重操作

去重操作在处理数据的过程中是少不了的。例如:我们想知道一个班上有多少个人担任了班级职位,但有可能有的人身兼多职,这时候就需要对数据进行去重。下面以简单地数字列表为例,和大家介绍三种简单地去重操作:

(1)循环去重

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)

输出结果:


(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)

输出结果:


(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)

输出结果:


比较以上三种去重方式:

(1)循环,显然就比较繁琐,而且结果不会自动排序。

(2)set()方法,需要对集合有一定的了解,结果是会自动排序的。

(3)keys()方法,需要对字典有一定的了解,虽然比循环简短许多,但是和循环一样,结果不会进行自动排序。

二、统计操作

第一种方法非常简单,这也是因为这个数组比较简单,可以直接使用​len(array)​取列表的长度即可。

不过我建议使用的是第二种方法,使用 pandas 库。

注:说一句废话,如果您对 Python 大数据有很深的兴趣,那么学习 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行,如果你想要打印多一点,你可以传入参数。例如,你想打印20行,只需要传入20即可,​head(20)​.

count()​方法是对列表进行统计。从打印结果可以看到,这个数组一共有 53 个数值。

value_counts()​方法是对列表进行去重,然后重新返回一个新的列表,同时默认按照从多到少排序。再用​count()​方法就可以知道去重后的数值一共 9 个。

三、总结

以上就是关于使用 Python 对数字数组的去重以及统计的内容。