📜  数据框 python 唯一值行 - Python (1)

📅  最后修改于: 2023-12-03 14:54:55.478000             🧑  作者: Mango

数据框 Python 唯一值行 - Python

数据框(DataFrame)是 Pandas 中最常用的数据结构,其中的数据以二维表的形式存储。在实际数据分析中,通常需要对数据进行去重或者筛选出唯一的行。

本文将介绍如何在 Python 中对数据框中的唯一值行进行操作。

查找唯一值行

在 Pandas 中,可以使用 drop_duplicates() 函数来查找唯一值行。下面是一个示例数据框:

import pandas as pd

data = pd.DataFrame({
    'Name': ['Alex', 'Bob', 'Charlie', 'Alex', 'Bob'],
    'Age': [25, 32, 18, 25, 29],
    'Gender': ['M', 'M', 'F', 'M', 'F']
})

print(data)

输出结果如下:

      Name  Age Gender
0     Alex   25      M
1      Bob   32      M
2  Charlie   18      F
3     Alex   25      M
4      Bob   29      F

要查找唯一值行,可以在调用 drop_duplicates() 函数时指定参数 keep='first'。这表示保留第一次出现的行,其他与之重复的行会被删除。代码如下:

unique_rows = data.drop_duplicates(keep='first')

print(unique_rows)

输出结果如下:

      Name  Age Gender
0     Alex   25      M
1      Bob   32      M
2  Charlie   18      F
4      Bob   29      F

可以看到,重复出现的 Alex 行已被删除,只保留了第一次出现的 Alex 行。

查找重复值行

有时候我们需要查找重复值行,即数据框中出现了多次的行。可以在调用 drop_duplicates() 函数时指定参数 keep=False。这表示删除所有重复的行,只保留唯一值行。代码如下:

duplicate_rows = data.drop_duplicates(keep=False)

print(duplicate_rows)

输出结果如下:

   Name  Age Gender
1   Bob   32      M
4   Bob   29      F

可以看到,唯一值行都被删除了,只保留了重复出现的 Bob 行。

查找重复出现的行数

要查找重复出现的行数,可以使用 duplicated() 函数。该函数返回一个布尔型数组,表示每行是否是重复行。然后可以使用 Python 的计数器(Counter)来统计重复行的出现次数。代码如下:

from collections import Counter

# 使用 drop_duplicates() 函数筛选出唯一值行,然后取反得到重复值行
duplicate_rows = ~(data.drop_duplicates(keep=False))

# 使用 duplicated() 函数查找重复行
duplicate_mask = data.duplicated()

# 使用计数器统计重复次数
counts = Counter(duplicate_mask[duplicate_rows.values].index)

print(counts)

输出结果如下:

Counter({4: 1, 1: 1})

可以看到,共有两行是重复的,其中 Bob 行重复了两次,Alex 行重复了一次。

总结

本文介绍了如何在 Python 中对数据框中的唯一值行进行操作,包括查找唯一值行、查找重复值行以及查找重复出现的行数。这些操作在实际数据分析中都十分常见,并且在 Pandas 中也有简单易用的函数支持。