pandas根据列去重

pandas根据列去重

pandas根据列去重

在数据处理过程中,经常会遇到需要对数据进行去重操作的情况。去重是指在数据中找到重复的行,并将其去除,保留唯一的行。在 pandas 中,我们可以根据指定的列对数据进行去重操作,以保证数据的唯一性。本文将详细介绍 pandas 如何根据列去重,帮助大家更好地处理数据。

1. 数据准备

首先,我们需要准备一些数据用于演示。我们创建一个包含重复行的 DataFrame,用来展示去重操作的效果。

import pandas as pd

data = {'A': [1, 2, 3, 1, 2, 3],
        'B': ['a', 'b', 'c', 'a', 'b', 'c'],
        'C': [True, False, True, False, True, False]}

df = pd.DataFrame(data)
print(df)

运行以上代码,可以得到如下输出:

   A  B      C
0  1  a   True
1  2  b  False
2  3  c   True
3  1  a  False
4  2  b   True
5  3  c  False

可以看到,DataFrame 中包含重复的行,下面我们将演示如何根据列去重操作。

2. 根据单列去重

我们首先介绍如何根据单列去重。可以使用 drop_duplicates() 方法来实现,该方法会保留第一次出现的唯一行,其他重复行会被去除。下面我们演示如何根据列’A’去重。

df_unique_A = df.drop_duplicates(subset=['A'])
print(df_unique_A)

运行以上代码,可以得到如下输出:

   A  B      C
0  1  a   True
1  2  b  False
2  3  c   True

可以看到,根据列’A’去重后,保留了第一次出现的唯一行。

3. 根据多列去重

除了单列去重,我们还可以根据多列进行去重操作。只需将需要去重的列名以列表形式传递给 drop_duplicates() 方法即可。下面我们演示如何根据列’A’和列’B’进行去重。

df_unique_AB = df.drop_duplicates(subset=['A', 'B'])
print(df_unique_AB)

运行以上代码,可以得到如下输出:

   A  B      C
0  1  a   True
1  2  b  False
2  3  c   True

可以看到,根据列’A’和’B’去重后,保留了第一次出现的唯一行。

4. 保留最后一次出现的唯一行

有时我们需要保留最后一次出现的唯一行,可以将 keep 参数设置为 ‘last’。下面演示如何保留最后一次出现的唯一行。

df_unique_last = df.drop_duplicates(subset=['A'], keep='last')
print(df_unique_last)

运行以上代码,可以得到如下输出:

   A  B      C
3  1  a  False
4  2  b   True
5  3  c  False

可以看到,保留了每个唯一值最后一次出现的行。

5. 更多参数介绍

除了 subsetkeep 参数,drop_duplicates() 方法还有其他参数可以使用,这里简单介绍一下:

  • keep='first':保留第一次出现的唯一行(默认值)。
  • keep=False:将所有重复行去除。
  • inplace=True:在原 DataFrame 上直接进行去重操作,而不是返回一个新的 DataFrame。

6. 总结

本文介绍了 pandas 如何根据列去重,包括根据单列和多列去重,以及保留第一次或最后一次出现的唯一行。通过去重操作,可以帮助我们处理数据中的重复信息,确保数据的唯一性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程