首页 > 解决方案 > 如果从数据框中删除重复的行

问题描述

我正在使用 pandas 数据框,我想根据列 ID 值删除重复的行,但是在重复的行中,如果 Value 列有值,我想保留该行。

我知道

.drop_duplicates(subset="ID", keep="first")

,但如果值单元格不同,则会保留重复的行。

输入表:

ID 价值
一个 qwer
自卫队
一个
C

输出表:

ID 价值
一个 qwer
自卫队
C

谢谢

标签: mysqlpandasdataframepython-3.7

解决方案


我相信这是您的逻辑:

# 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]

推荐阅读