DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)
参数:
返回: 重复数据删除 : DataFrame
df = pd.DataFrame({'one':['q','w','e','e'],'two':['ok','no','haha','haha'],'three':[1,2,3,3]})
df.drop_duplicates(subset=None, keep = 'first', inplace = True)
注意:subset设置为None的时候,默认所有列,意思是所有列同时(即:完全一样的两行)为重复的时候才删除。(我之前以为是一列一列循环判断的。。。)
df.drop_duplicates(subset=['two'], keep = 'first', inplace = True)
指定列的时候要用‘[ ]’括起来
df.drop_duplicates(subset=['two'], keep = False, inplace = True)
统计list中的不同值时,返回的是array.它有三个参数,可分别统计不同的量,返回的都是array.
import numpy as np
a = [1,2,3,3,4,5,5]
# 返回一个array
print(np.unique(a))
# [1 2 3 4 5]
# 返回该元素在list中第一次出现的索引(参数:return_index=True)
print(np.unique(a,return_index=True))
# (array([1, 2, 3, 4, 5]), array([0, 1, 2, 4, 5], dtype=int64))
# 返回原list中每个元素在新的list中对应的索引(参数:return_inverse=True)
print(np.unique(a,return_inverse=True))
# (array([1, 2, 3, 4, 5]), array([0, 1, 2, 2, 3, 4, 4], dtype=int64))
# 返回该元素在list中出现的次数(参数:return_counts=True)
print(np.unique(a,return_counts=True))
# (array([1, 2, 3, 4, 5]), array([1, 1, 2, 1, 2], dtype=int64))
# 同时设置上述参数时
p,q,m,n = np.unique(a,return_index=True,return_inverse=True,return_counts=True)
print(p,q,m,n)
# [1 2 3 4 5] [0 1 2 4 5] [0 1 2 2 3 4 4] [1 1 2 1 2]
#下面的两条注意是看同行博客标注的,我没做测试,但是很好理解,所以也在这里注意一下。
# 注意当list中的元素不是数字而是list的时候,输出的数据类型与list中元素的长度有关
# 利用这种方法对list中元素去重或求里面元素的个数都不是好方法,很容易出错
统计series中的不同值时,返回一个array,没有其它参数
import pandas as pd
b = pd.Series([1,2,3,4,4,5,5])
print(b.unique())
# [1 2 3 4 5]