pandas 丢掉 dataframe 中重复的行-ag捕鱼王app官网

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 列都有相同的值。

上一篇:pandas dataframe 删除某行

下一篇:

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

本文地址:

相关文章

pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:python

pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。

pandas 追加数据到 csv 中

发布时间:2024/04/24 浏览次数:352 分类:python

本教程演示了如何在追加模式下使用 to_csv()向现有的 csv 文件添加数据。

pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:python

本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。

pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:python

本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图