在我的数据集中,我有OrderID
列和OrderTotal
列。
我有重复的OrderID
。我不想删除重复项,相反,我想保留OrderID
的第一个实例的order值,并在{出现其他重复项时,将OrderTotal
的值替换为0 {1}}。
这是我所做的:
OrderID
我遇到此错误:
usr / local / lib / python3.6 / dist-packages / pandas / core / ops / array_ops.py:253:FutureWarning:逐元素比较失败;而是返回标量,但将来将执行元素比较 res_values =方法(rvalues)
答案 0 :(得分:0)
d={'OrderID':['a','a','a','b','b','c','c','c','d','d'],
'OrderTotal':[2355, 1546,987,2451, 571,3859,1876, 1239,2836,2395]}
data=pd.DataFrame(data=d)
print(data)
OrderID OrderTotal
0 a 2355
1 a 1546
2 a 987
3 b 2451
4 b 571
5 c 3859
6 c 1876
7 c 1239
8 d 2836
9 d 2395
duplicates=data['OrderID'].duplicated(keep='first')
data['OrderTotal']=np.where((duplicates==True), 0 ,data['OrderTotal'])
duplicates=data['OrderID'].duplicated(keep='first')
data['OrderTotal']=data['OrderTotal'].where(duplicates== False, 0)
两种情况下的数据框都已更新,
print(data)
OrderID OrderTotal
0 a 2355
1 a 0
2 a 0
3 b 2451
4 b 0
5 c 3859
6 c 0
7 c 0
8 d 2836
9 d 0