mysql - 如果从数据框中删除重复的行
问题描述
我正在使用 pandas 数据框,我想根据列 ID 值删除重复的行,但是在重复的行中,如果 Value 列有值,我想保留该行。
我知道
.drop_duplicates(subset="ID", keep="first")
,但如果值单元格不同,则会保留重复的行。
输入表:
ID | 价值 |
---|---|
一个 | qwer |
乙 | 自卫队 |
一个 | |
C |
输出表:
ID | 价值 |
---|---|
一个 | qwer |
乙 | 自卫队 |
C |
谢谢
解决方案
我相信这是您的逻辑:
# mark the duplicated rows
duplicated = df['ID'].duplicated()
# non-nan rows
# consider `.ne('')` if you are searching for blank value
not_empty = df['Value'].notna()
# keep rows that are not duplicated or non-nan
# that is to remove those that are **both** duplicates and has empty value
df[(~duplicated) | not_empty]
推荐阅读
- css - 可爱的 ExpressionChangedAfterItHasBeenCheckedError
- java - 信息:检测到的方言:W3C 使用 Selenium Java
- django - 如何引用django外键?
- reactjs - 在单个 React 应用程序中从多个域连接到多个 GraphQL 端点
- android - 如何在 Android 中获得持续的位置更新?
- linux - 如何在linux中复制带有行号的文件?
- android - 谷歌分析应用程序 + 网页与 Android 应用程序有问题
- java - 获取内部类中的值
- ruby-on-rails - 确定数组大小是否从以前的值更改 - Ruby
- flutter - 在 Flutter Dart 中设置 Html 小部件的样式