拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 查找重复项,先保留并替换其余部分

查找重复项,先保留并替换其余部分

白鹭 - 2022-01-26 1993 0 0

我有一个包含列中重复值的资料框,我需要识别重复项,保留第一个并替换其他的,可能为零或 NaN

这是 df 的一个例子

ID 行业 物流 商业 反馈 回传 完成的
1 166 325158.0 NaN 没有任何 2140957.0 NaN NaN
2 379 161616.0 417296.0 没有任何 1808454.0 NaN NaN
3 136 1729.0。 417296.0 没有任何 1734326.0 NaN 217
4 1173 174533.0 417296.0 没有任何 1734188.0 NaN 217
5 111 1531.0 406413.0 没有任何 1714706.0 NaN 217

预期结果:

ID 行业 物流 商业 反馈 回传 完成的
1 166 325158.0 NaN 没有任何 2140957.0 NaN NaN
2 379 161616.0 417296.0 没有任何 1808454.0 NaN NaN
3 136 1729.0。 没有任何 没有任何 1734326.0 NaN 217
4 1173 174533.0 没有任何 没有任何 1734188.0 NaN 没有任何
5 111 1531.0 406413.0 没有任何 1714706.0 NaN 没有任何

uj5u.com热心网友回复:

例如,要替换 Logistic 列中的重复项,首先要找到重复项:

df.Logistic.duplicated()

默认情况下,keep = ‘first’(有关pd.duplicated 的更多信息

因此,当您使用 .loc 本地化所有重复项时,您可以轻松替换它们:

df.loc[df.Logistic.duplicated(), 'Logistic'] = None

for 回圈可以为您的所有列执行此技巧:

for col_name in df.columns:
    df.loc[df[col_name].duplicated(), col_name] = None

如果有人有更优雅的方法来为所有列做这件事,我很乐意看到它:)

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *