Python 删除表中具有不同索引值的重复行
我有一个数据框,其中包含产品数据,产品ID存储为索引值,其他属性存储为列。由于人为错误,有时会出现相同项目的重复条目,我需要过滤掉这些重复条目。除了ProductID(索引值)之外,上一行的给定重复行的所有内容都是相同的 有没有一种方法可以删除包含完全相同的值的行,这些值显然是重复的条目,尽管索引值不同?我所指的示例如下:Python 删除表中具有不同索引值的重复行,python,pandas,dataframe,duplicates,Python,Pandas,Dataframe,Duplicates,我有一个数据框,其中包含产品数据,产品ID存储为索引值,其他属性存储为列。由于人为错误,有时会出现相同项目的重复条目,我需要过滤掉这些重复条目。除了ProductID(索引值)之外,上一行的给定重复行的所有内容都是相同的 有没有一种方法可以删除包含完全相同的值的行,这些值显然是重复的条目,尽管索引值不同?我所指的示例如下: 当然,您可以使用pandas的drop_duplicates()函数。看看下面的例子 df = pd.DataFrame({ 'id': [0, 1, 2, 3, 4
当然,您可以使用pandas的
drop_duplicates()
函数。看看下面的例子
df = pd.DataFrame({
'id': [0, 1, 2, 3, 4],
'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],
'style': ['cup', 'cup', 'cup', 'pack', 'pack'],
'rating': [4, 4, 3.5, 15, 5]})
df.drop_duplicates(subset=['brand', 'style', 'rating'])
如您所见,我使用了带有参数subset=[]
的drop\u duplicates()
函数,它允许我设置要分析的列。如果您想了解有关此函数的更多信息,请单击
要改进上述代码,可以使用
subset=df.columns.difference(['id'])
而不是
subset=df.columns.difference(['id'])
它允许传递不应分析的列的名称,在您的情况下,您应该使用如下代码:
df.drop_duplicates(subset=df.columns.difference(['ProductID']))
您需要的是:
df.drop_duplicates(inplace=True, ignore_index=True)
ignore\u index=True
将创建一个新的continuos索引productId(无间隙)您确定不是指删除重复项()
duplicated
识别重复项,并删除重复项()
实际删除它们我编辑了答案,现在它允许删除重复的行。