在很多场景下,我们会需要一些去重的数据。比如我们有一组数据,每一条数据代表着某个用户对某条内容的阅读。假如我们需要的不是人次数据(PV:page view),而是有多少人产生了阅读(UV:unique visitor),那我们就需要对数据做一个去重。
在Python中,有很多工具可以提供去重的功能。在不同的场景下,我们要根据运行速度、数据格式等因素来考虑到底使用什么方法。以下是六种常见的处理方法,我们可以视情况进行选择。
1. 使用set
list2 = list(set(list1))
print(list2)
2. 使用循环+判断
for i in list1:
if i not in list2:
list2.append(i)
print(list2)
3. 使用Counter
from collections import Counter
counter = Counter(list1)
list2 = list(counter.keys())
print(list2)
4. 使用defaultdict
from collections import defaultdict
dict_tmp = defaultdict(int)
for i in list1:
dict_tmp[i] += 1
list2 = list(dict_tmp.keys())
print(list2)
5. 使用pandas
import pandas as pd
se = pd.Series(list1)
list2 = list(se.unique())
list3 = list(se.drop_duplicates())
print(list2)
print(list3)
6. 使用numpy
import numpy as np
list2 = list(np.unique(list1))
print(list2)
Python有许多库对去重有支持,可以看情况进行选择。还有很多其他的去重方法,这里就不再列出来了。