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 中删除,因为它们在Region和Store列中包含重复值。
注意:您可以在此处找到drop_duplicates()函数的完整文档。
其他资源
以下教程解释了如何在 pandas 中执行其他常见操作:
如何在 pandas 中查找重复项
如何删除 Pandas 中的重复列
如何删除 Pandas DataFrame 中的第一行