📅  最后修改于: 2023-12-03 14:54:55.478000             🧑  作者: Mango
数据框(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 中也有简单易用的函数支持。