【发布时间】:2021-08-07 15:38:43
【问题描述】:
我有一个如下所示的 df:
x y c v
KRY 2 T1 23
KRY 2 T1 23
KRD 3 T2 24
KRD 3 T2 24
KRD 3 T2 24
KRO 4 T3 245
KRO 4 T3 245
KRO 4 T3 13
现在我必须找到重复的行(基于 x、y、c 列)并将 v 列中的值替换为 0。所以应该是这样的:
x y c v
KRY 2 T1 23
KRY 2 T1 0
KRD 3 T2 24
KRD 3 T2 0
KRD 3 T2 0
KRO 4 T3 245
KRO 4 T3 0
KRO 4 T3 13
我尝试先定位行,然后它们使用了替换功能,但它不起作用。我的代码如下:
df[df.duplicated(subset=['x','y','c','v'])].replace(df["v"], "0")
您知道我该如何解决吗?感谢您的帮助
【问题讨论】:
-
为什么你在最后一行得到
KRO 4 T3 13而不是KRO 4 T3 0...如果你真的在工作based on columns x, y, c?
标签: python pandas dataframe replace duplicates