Pandas:如何删除多列上的重复项


您可以使用以下方法删除 pandas DataFrame 中多列中的重复行:

方法1:删除所有列中的重复项

 df. drop_duplicates ()

方法2:删除特定列中的重复项

 df. drop_duplicates ([' column1 ',' column3 '])

以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' region ': ['East', 'East', 'East', 'West', 'West', 'West'],
                   ' store ': [1, 1, 2, 1, 2, 2],
                   ' sales ': [5, 5, 7, 9, 12, 8]})

#view DataFrame
print (df)

  region store sales
0 East 1 5
1 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
5 West 2 8

示例 1:删除所有列中的重复项

以下代码展示了如何删除所有列中具有重复值的行:

 #drop rows that have duplicate values across all columns
df. drop_duplicates ()

	region store sales
0 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
5 West 2 8

索引位置 1 处的行在所有列中与索引位置 0 处的行具有相同的值,因此将其从 DataFrame 中删除。

默认情况下,pandas 将第一行保留为副本。但是,您可以使用keep参数来指定保留最后一个重复行:

 #drop rows that have duplicate values across all columns (keep last duplicate)
df. drop_duplicates (keep=' last ')

	region store sales
1 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12
5 West 2 8

示例 2:删除特定列中的重复项

您可以使用以下代码删除仅在区域存储列中具有重复值的行:

 #drop rows that have duplicate values across region and store columns
df. drop_duplicates ([' region ',' store '])

	region store sales
0 East 1 5
2 East 2 7
3 West 1 9
4 West 2 12

总共有两行从 DataFrame 中删除,因为它们在RegionStore列中包含重复值。

注意:您可以在此处找到drop_duplicates()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见操作:

如何在 pandas 中查找重复项
如何删除 Pandas 中的重复列
如何删除 Pandas DataFrame 中的第一行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注