Press "Enter" to skip to content

Pandas常用函数之drop_duplicates()去重函数

根据数据的不同情况及处理数据的不同需求,通常会分为两种情况,一种是去除完全重复的行数据,另一种是去除某几列重复的行数据,就这两种情况可用下面的代码进行处理。

去除完全重复的行数据

data.drop_duplicates(inplace=True)

去除某几列重复的行数据

data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)

参数说明:

subset: 列名,可选,默认为None

keep: {‘first’, ‘last’, False}, 默认值 ‘first’

first: 保留第一次出现的重复行,删除后面的重复行。
last: 删除重复项,除了最后一次出现。
False: 删除所有重复项。

inplace:布尔值,默认为False,是否直接在原数据上删除重复项或删除重复项后返回副本。(inplace=True表示直接在原来的DataFrame上删除重复项,而默认值False表示生成一个副本。)

举个例子:

首先打开一份数据

我们可以看得输出的数据第五至第九行是重复的,我需要把这些重复的数据去重,就需要用到drop_duplicates()函数

import pandas as pd
pd.set_option('display.unicode.ambiguous_as_wide', True)  #处理数据的列标题与数据无法对齐的情况
pd.set_option('display.unicode.east_asian_width', True)   #无法对齐主要是因为列标题是中文

df=pd.read_csv(r'data\a_stock_201903.csv',encoding='gbk')

df1=df.iloc[0:10][['交易日期', '股票代码', '收盘价', '成交量']] #按行提取数据
df2=df.iloc[5:16][['交易日期', '股票代码', '收盘价', '成交量']]

result=df1.append(df2) # df1和df2上下拼接
result.drop_duplicates(subset=['交易日期','股票代码'],keep='first',inplace=True)
print(result)

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注