python - 在熊猫中如何使用 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”的最后一次出现
解决方案
我对 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')
])
推荐阅读
- xml - 使用 xmlstarlet 以特定顺序解析列表
- mysql - Gammu 使用 Mysql - Access 将记录显示为 #deleted
- python - 如何从两个变量的数学函数制作 3D 和等高线图
- javascript - Javascript 和 SASS 之间的通信
- javascript - JSP中的Javascript getCurrentYear
- postgresql - 初始化集群 Postgres-XL
- google-maps - 如何找到 Google 地图 API 的问题所在?
- vba - 在交叉引用域代码中插入/修改文本
- microprofile - 为什么@Fallback() 不会在部署到 thorntail+microprofile 的琐碎 .war 中触发?
- python - 使用 Electron 应用程序时如何从 Angular 组件与 Python 后端通信?