【问题标题】:Removing Duplicate Values not working - expected bool?删除重复值不起作用 - 预期的布尔值?
【发布时间】:2019-08-08 11:29:39
【问题描述】:

我的数据集看起来像

我正在尝试 2 个函数来清理 df - 首先删除 df 中所有相等的组合 - 这意味着如果相同的 id 像第 1 行和第 3 行一样组合在一起,它会删除它,但是当我尝试第二个函数时然后删除每列中的任何重复项 - 它运行没有错误,但实际的重复项没有被删除?

def remove_dup_combos(df):
u = df.filter(like='id').values
m = pd.DataFrame(np.sort(u, axis=1)).duplicated()
df = df[~m]

return df



def remove_dups(df):
   df = df = df.drop_duplicates(['id1', 'id2'])

  return df

【问题讨论】:

    标签: python-3.x pandas dataframe duplicates data-analysis


    【解决方案1】:

    如果需要删除两列的重复项,我相信您需要:

    df = df.drop_duplicates(['id1', 'id2'])
    

    您的解决方案不同 - 先分别删除重复项,然后依次查看第二列:

    df = df.drop_duplicates(['id1'], inplace = False)
    df = df.drop_duplicates(['id2'], inplace = False)
    

    参数inplace = False默认在DataFrame.drop_duplicates,所以应该去掉:

    df = df.drop_duplicates(['id1'])
    df = df.drop_duplicates(['id2'])
    

    【讨论】:

    • 谢谢 - 你能看看我编辑的问题吗?这个答案有效,但当我首先运行我的另一个函数时它似乎没有协同工作,它删除了所有相等的组合@jezrael
    • @Chris90 - 您的数据的预期输出是什么?
    • 例如,在我的问题中的上述示例数据中 - 只有最后一行会保留 - 我想删除所有 id 为相同组合的行,如第 1 行和第 3 行(其中 id1 和id 2 是刚刚为列切换的相同组合,然后我还想删除 col id1 和 col id2 中的所有重复项 @jezrael
    • 我会将这篇文章标记为已回答,并打开一个新问题,抱歉! @jerael
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    • 1970-01-01
    • 2013-08-12
    • 2013-07-03
    • 2017-08-18
    • 2015-07-27
    • 1970-01-01
    相关资源
    最近更新 更多