python - 如何删除特定列中重复ID的数据?

标签 python pandas dataframe duplicates

我有这个简单的数据框:

ID  Name    State
1   John    DC
1   John    VA
2   Smith   NE
3   Janet   CA
3   Janet   NC
3   Janet   MD      

我想删除重复 IDState 值,如下所示:

ID  Name    State
1   John    nan
1   John    nan
2   Smith   NE
3   Janet   nan
3   Janet   nan
3   Janet   nan

知道如何解决这个问题吗?

谢谢

最佳答案

duplicated 返回一个 bool 掩码,其中行在 subset 中定义的列上重复。 keep=False 表示我们不应将第一个或最后一个重复项视为非重复项。然后使用 loc 允许我们分配到发生重复的行。

df.loc[df.duplicated(subset=['ID'], keep=False), 'State'] = None

df

enter image description here

关于python - 如何删除特定列中重复ID的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38834788/

相关文章:

python - 使用 pprint 并跳过类型名称

python - 如何将 sqlalchemy 查询作为字典返回?

python - 什么时候使用 df.value_counts() 与 df.groupby ('...' ).count() 比较合适?

python - Pandas:将各种相似的子字符串映射到单一标准格式

python - 无法使用正则表达式查找 pandas 中值集的子字符串的第一次出现

python - 合并 csv 文件列和名称列

python - 使用python将数字转换为二进制并存储在 Pandas 的多列中

python - 有没有一种有效的方法来查找系列中的前 n 个重复项?

python - 考虑 Pandas 中的几个属性,删除重复项

r - x 没有适用于 'tbl_vars' 的方法应用于类 "c(' double', 'numeric' ) 的对象”