📌  相关文章
📜  pandas dataframe 唯一的多列 - Python (1)

📅  最后修改于: 2023-12-03 15:18:13.556000             🧑  作者: Mango

pandas dataframe 唯一的多列 - Python

在 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 参数,可以让我们仅仅按照指定的列的值来判断是否重复行。