迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Pandas 丢掉 DataFrame 中重复的行

作者:迹忆客 最近更新:2024/04/23 浏览次数:

本教程介绍了如何使用 DataFrame.drop_duplicates() 方法从 Pandas DataFrame 中删除所有重复的行。


DataFrame.drop_duplicates() 语法

DataFrame.drop_duplicates(subset=None, keep="first", inplace=False, ignore_index=False)

它返回一个 DataFrame,删除 DataFrame 中所有重复的行。


使用 DataFrame.drop_duplicates() 方法删除重复的行

import pandas as pd

df_with_duplicates = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 303, 302],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Watch", "Watch"],
        "Cost": ["300", "400", "350", "100", "300", "300"],
    }
)

df_without_duplicates = df_with_duplicates.drop_duplicates()

print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")

print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")

输出:

DataFrame with duplicates:
    Id    Name Cost
0  302   Watch  300
1  504  Camera  400
2  708   Phone  350
3  103   Shoes  100
4  303   Watch  300
5  302   Watch  300 

DataFrame without duplicates:
    Id    Name Cost
0  302   Watch  300
1  504  Camera  400
2  708   Phone  350
3  103   Shoes  100
4  303   Watch  300 

它会删除所有列的所有值都相同的行。默认情况下,DataFrame 中每一列都有相同值的行才被认为是重复的。在 df_with_duplicates DataFrame 中,第一行和第五行对所有列都有相同的值,所以第五行被删除。

设置 subset 参数以仅基于特定列删除重复项

import pandas as pd

df_with_duplicates = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 303, 302],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Watch", "Watch"],
        "Cost": ["300", "400", "350", "100", "300", "300"],
    }
)

df_without_duplicates = df_with_duplicates.drop_duplicates(subset=["Name"])

print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")

print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")

输出:

DataFrame with duplicates:
    Id    Name Cost
0  302   Watch  300
1  504  Camera  400
2  708   Phone  350
3  103   Shoes  100
4  303   Watch  300
5  302   Watch  300 

DataFrame without duplicates:
    Id    Name Cost
0  302   Watch  300
1  504  Camera  400
2  708   Phone  350
3  103   Shoes  100 

在这里,我们将 Name 作为 subset 参数传给 drop_duplicates() 方法。第四行和第五行被删除,因为它们的 Name 列的值与第一列相同。


drop_duplicates() 方法中设置 keep='last'

import pandas as pd

df_with_duplicates = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 303, 302],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Watch", "Watch"],
        "Cost": ["300", "400", "350", "100", "300", "300"],
    }
)

df_without_duplicates = df_with_duplicates.drop_duplicates(subset=["Name"], keep="last")

print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")

print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")

输出:

DataFrame with duplicates:
    Id    Name Cost
0  302   Watch  300
1  504  Camera  400
2  708   Phone  350
3  103   Shoes  100
4  303   Watch  300
5  302   Watch  300 

DataFrame without duplicates:
    Id    Name Cost
1  504  Camera  400
2  708   Phone  350
3  103   Shoes  100
5  302   Watch  300 

它删除了所有的行,除了最后一行与 Name 列值相同的行。

我们设置 keep=False 来删除任何一列中具有相同值的所有行。

import pandas as pd

df_with_duplicates = pd.DataFrame(
    {
        "Id": [302, 504, 708, 103, 303, 302],
        "Name": ["Watch", "Camera", "Phone", "Shoes", "Watch", "Watch"],
        "Cost": ["300", "400", "350", "100", "300", "300"],
    }
)

df_without_duplicates = df_with_duplicates.drop_duplicates(subset=["Name"], keep=False)

print("DataFrame with duplicates:")
print(df_with_duplicates, "\n")

print("DataFrame without duplicates:")
print(df_without_duplicates, "\n")

输出:

DataFrame with duplicates:
    Id    Name Cost
0  302   Watch  300
1  504  Camera  400
2  708   Phone  350
3  103   Shoes  100
4  303   Watch  300
5  302   Watch  300 

DataFrame without duplicates:
    Id    Name Cost
1  504  Camera  400
2  708   Phone  350
3  103   Shoes  100 

它删除了第一、五、六行,因为它们的 Name 列都有相同的值。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

查找已安装的 Pandas 版本

发布时间:2024/04/23 浏览次数:116 分类:Python

在本文中,我们将介绍如何查找已安装的 Python Pandas 库版本。我们使用了内置版本功能和其他功能来显示其他已安装版本的详细信息。

Pandas 中的 Groupby 索引列

发布时间:2024/04/23 浏览次数:79 分类:Python

本教程将介绍如何使用 Python Pandas Groupby 对数据进行分类,然后将函数应用于类别。通过示例使用 groupby() 函数按 Pandas 中的多个索引列进行分组。

Pandas 通过 Groupby 应用变换

发布时间:2024/04/23 浏览次数:180 分类:Python

本教程演示了 Pandas Python 中与 groupby 方法一起使用的 apply 和 transform 之间的区别。

Pandas Vlookup

发布时间:2024/04/23 浏览次数:83 分类:Python

本教程演示如何在 Python 中使用 Pandas 通过不同的技术合并两个不同的表。

Pandas 中的散点矩阵

发布时间:2024/04/23 浏览次数:105 分类:Python

本教程演示了如何使用 scatter_matrix 函数在 Pandas 中创建散点图。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便