pandas.drop_duplicates()是pandas库中的一个函数,主要用于去除数据集中的重复行。这个函数可以从任何一个DataFrame或Series对象中删除具有重复值的行,并返回一个新的DataFrame或Series,其中不包含任何重复的值。
pandas.drop_duplicates()有几个参数,其中最重要的是subset和keep。
subset: 默认值为None,表示检查所有列是否有重复的行。如果指定了这个参数,那么函数将仅检查指定的列是否有重复行。
keep: 默认值为first,表示保留第一个值,删除其余的值。如果将其设置为last,则表示保留最后一个值,删除其余的值。
下面是pandas.drop_duplicates()的使用方法:
使用默认值情况下,pandas会检查整个DataFrame中的所有列,如果有完全相同的行,则保留第一个行,删除其余的行。
import pandas as pd
data = {'name': ['apple', 'orange', 'banana', 'banana', 'apple'],
'price': [1.5, 2, 3, 3, 1.5]}
df = pd.DataFrame(data)
df.drop_duplicates()
输出:
name price
0 apple 1.5
1 orange 2.0
2 banana 3.0
有时候,我们只是想在一个或多个列中检查重复项,比如上面的例子中我们只想检查name列是否有重复值。我们可以使用参数subset来指定我们感兴趣的列。
df.drop_duplicates(subset=['name'])
输出:
name price
0 apple 1.5
1 orange 2.0
2 banana 3.0
可以看到,检查name列的结果与默认检查整个DataFrame的结果是一样的。
如果我们想保留最后一个重复的行而不是第一个重复的行,可以将参数keep设置为'last'。
df.drop_duplicates(keep='last')
输出:
name price
1 orange 2.0
3 banana 3.0
4 apple 1.5
此时,保留了最后一个重复的行。
我们可以对原始数据进行操作,通过设置inplace为True,实现原地删除。
df.drop_duplicates(inplace=True)
输出:
name price
0 apple 1.5
1 orange 2.0
2 banana 3.0
可以看到,原始数据被修改了,其中不再包含重复行。
这就是pandas.drop_duplicates()的使用方法,使用这个函数可以轻松清除数据中的重复行,使数据更加可靠和可用。
本文链接:http://task.lmcjl.com/news/17724.html