📅  最后修改于: 2023-12-03 15:18:13.556000             🧑  作者: Mango
在 pandas 中,我们可以使用 drop_duplicates
函数来去除 DataFrame 中的重复行。这个函数默认按照所有列的值来判断是否重复,但我们也可以指定一些列来仅仅按照这些列的值来判断是否重复。这就是本文所要介绍的 pandas DataFrame 唯一的多列用法。
首先,让我们看一下一个简单的 DataFrame:
import pandas as pd
data = {'A': ['foo', 'bar', 'baz', 'foo'],
'B': ['spam', 'spam', 'eggs', 'eggs'],
'C': [1, 2, 3, 1]}
df = pd.DataFrame(data)
print(df)
输出:
A B C
0 foo spam 1
1 bar spam 2
2 baz eggs 3
3 foo eggs 1
我们可以看到,这个 DataFrame 中有一些重复行。我们可以使用 drop_duplicates
函数来删除它们:
df = df.drop_duplicates()
print(df)
输出:
A B C
0 foo spam 1
1 bar spam 2
2 baz eggs 3
3 foo eggs 1
这个函数默认认为所有列的值都相同才算是重复行。但我们可以传递一个参数 subset
来指定只用哪些列的值来判断是否重复。例如,我们可以仅仅按照列 A 和列 B 的值来判断是否重复:
df = df.drop_duplicates(subset=['A', 'B'])
print(df)
输出:
A B C
0 foo spam 1
1 bar spam 2
2 baz eggs 3
3 foo eggs 1
可以看到,由于第 1 行和第 4 行的列 A 和列 B 的值都相同,它们被认为是重复行并被删除了。而其他行因为列 A 和列 B 的值不相同,所以被保留了下来。
这就是 pandas DataFrame 唯一的多列用法。使用 drop_duplicates
函数并传递一个 subset
参数,可以让我们仅仅按照指定的列的值来判断是否重复行。