【问题标题】:How to remove rows with duplicates in pandas dataframe?如何删除熊猫数据框中重复的行?
【发布时间】:2016-09-27 14:18:06
【问题描述】:

有一个包含两列重复值的数据框(AB):

A B
1 2
2 3
4 5
7 6
5 8

我想删除重复项,以便只保留唯一值:

A B
1 2
4 5
7 6

这个命令没有提供我想要的:

df.drop_duplicates(subset=['A','B'], keep='first')

知道怎么做吗?

【问题讨论】:

    标签: python pandas indexing duplicates multiple-columns


    【解决方案1】:

    您可以将stackunstack 一起使用:

    print (df.stack().drop_duplicates().unstack().dropna().astype(int))
       A  B
    0  1  2
    2  4  5
    3  7  6
    

    boolean indexing 的解决方案:

    print (df[~df.stack().duplicated().unstack().any(1)])
       A  B
    0  1  2
    2  4  5
    3  7  6
    

    【讨论】:

    • 谢谢!它有效,但如果我只想对特定列执行此操作,它不接受它。像这样的命令不起作用: df.stack().drop_duplicates(subset=['A', 'C'], keep=False).unstack().dropna()
    • 您需要使用数据子集 - 最简单的是第二种解决方案 print (df[~df[['A','C']].stack().duplicated().unstack().any(1)])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2020-03-23
    • 2017-10-04
    • 1970-01-01
    • 2017-09-27
    • 1970-01-01
    相关资源
    最近更新 更多