删除数据帧python的重复行

时间:2017-07-06 17:58:25

标签: python

我需要从数据集中删除重复的行。基本上,我应该执行

proc sort data=mydata noduprecs dupout=mydata_dup;run;

我需要删除重复项,并将这些重复的行保存在单独的dataframe中。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

假设您的数据集是一个pandas数据帧。

删除重复的行:

data = data.drop_duplicates()

选择所有重复的行:

dup = data.ix[data.duplicated(), :]

希望它有所帮助。

答案 1 :(得分:0)

来自Pandas docs的几个例子:

object_id

默认情况下,它会根据所有列删除重复的行。

> df = pd.DataFrame({

    'brand': ['Yum Yum', 'Yum Yum', 'Indomie', 'Indomie', 'Indomie'],

    'style': ['cup', 'cup', 'cup', 'pack', 'pack'],

    'rating': [4, 4, 3.5, 15, 5]

})

> df
    brand style  rating
0  Yum Yum   cup     4.0
1  Yum Yum   cup     4.0
2  Indomie   cup     3.5
3  Indomie  pack    15.0
4  Indomie  pack     5.0

要删除特定列上的重复项,请使用子集。

> df.drop_duplicates()
    brand style  rating
0  Yum Yum   cup     4.0
2  Indomie   cup     3.5
3  Indomie  pack    15.0
4  Indomie  pack     5.0

要删除重复项并保留最后一次出现,请使用 keep。

> df.drop_duplicates(subset=['brand'])
    brand style  rating
0  Yum Yum   cup     4.0
2  Indomie   cup     3.5