首页 > 解决方案 > 在熊猫中如何使用 drop_duplicates 有一个例外?

问题描述

在 python 3 和 pandas 中,我需要通过重复列中的值来消除数据框中的重复行。为此,我使用了:

consolidado = df_processos.drop_duplicates(['numero_unico'], keep='last')

“numero_unico”列具有字符串格式的代码,如 0029126-45.2019.1.00.0000、0026497-98.2019.1.00.0000、0027274-83.2019.1.00.0000...

所以上面的命令只保留最后找到的字符串代码外观

请问有谁知道如何使用 drop_duplicates 有一个例外?

但列内容并不总是字符串代码。在几行中出现内容“Sem número único”

我想保留所有存在此异常的行。但是使用上述命令,生成的数据框只保留“Sem número único”的最后一次出现

标签: pythonpandasdataframeexceptiondrop-duplicates

解决方案


我对 OP 的评论中的示例,

df = pandas.DataFrame({
    'a': ['snu', 'snu', '002', '002', '003', '003'], 
    'b': [1, 2, 2, 1, 5, 6]
})
df_dedupe = pandas.concat([ 
    df[df['a']=='snu'], 
    df[df['a']!='snu'].drop_duplicates(['a'], keep='last') 
])

推荐阅读