首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过ID - Python更改以下重复行的值

如何通过ID - Python更改以下重复行的值
EN

Stack Overflow用户
提问于 2022-10-11 14:14:43
回答 1查看 22关注 0票数 0

我试图找到一个解决方案,如果ID出现重复,则会转到另一列,并且只保留第一个值,并将其他值转换为0。

我所拥有的

代码语言:javascript
复制
test_2.query('FIX_VALUE != 0').head(10)

load_id_VR  ITEM_MEANING    LINE_COST   FIX_VALUE
672 19082022228668VR00500982    MILK RUN    452.46  -0.01
673 19082022228668VR00500982    STOP SUP MILK   34.57   -0.01
674 19082022228668VR00500982    SURTAXE GASOIL  60.90   -0.01
982 19082022280448VR00683048    EMPTIES LEG1    28.24   0.01
983 19082022280448VR00683048    MOBILITY PACKAGE    3.39    0.01
984 19082022280448VR00683048    SURTAXE GASOIL  2.81    0.01
991 19082022280448VR00683044    EMPTIES LEG1    13.18   0.01
992 19082022280448VR00683044    MOBILITY PACKAGE    1.58    0.01
993 19082022280448VR00683044    SURTAXE GASOIL  1.31    0.01
1033    1908202228144810027446  MATERIAL LEG2   62.99   -0.01

我想要达到的

代码语言:javascript
复制
load_id_VR  ITEM_MEANING    LINE_COST   FIX_VALUE
672 19082022228668VR00500982    MILK RUN    452.46  -0.01
673 19082022228668VR00500982    STOP SUP MILK   34.57   0.00
674 19082022228668VR00500982    SURTAXE GASOIL  60.90   0.00
982 19082022280448VR00683048    EMPTIES LEG1    28.24   0.01
983 19082022280448VR00683048    MOBILITY PACKAGE    3.39    0.00
984 19082022280448VR00683048    SURTAXE GASOIL  2.81    0.00
991 19082022280448VR00683044    EMPTIES LEG1    13.18   0.01
992 19082022280448VR00683044    MOBILITY PACKAGE    1.58    0.00
993 19082022280448VR00683044    SURTAXE GASOIL  1.31    0.00
1033    1908202228144810027446  MATERIAL LEG2   62.99   -0.01

它是否存在一种简单的方法来做到这一点?或者我需要这样做:

代码语言:javascript
复制
for i in range(0, len(df)):
    if (df['load_id_VR'].iloc[i] == df['load_id_VR'].iloc[i+1]):
        df['FIX_VALUE'].iloc[i+1] = 0.00

没有测试循环,希望在这里避免一个循环,如果它存在于Pandas --我们的Numpy中--可以直接执行这个命令。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-11 14:24:08

这里有一种方法

代码语言:javascript
复制
# using mask, assign the value of zero where load_id_vr is duplicated
df['FIX_VALUE']=df['FIX_VALUE'].mask(df.duplicated(subset='load_id_VR'),0)
df

或使用LOC

代码语言:javascript
复制
df.loc[df.duplicated(subset='load_id_VR'), 'FIX_VALUE'] = 0
df
代码语言:javascript
复制
load_id_VR  ITEM_MEANING    LINE_COST   FIX_VALUE
672     19082022228668VR00500982    MILK RUN    452.46  -0.01
673     19082022228668VR00500982    STOP SUP MILK   34.57   0.00
674     19082022228668VR00500982    SURTAXE GASOIL  60.90   0.00
982     19082022280448VR00683048    EMPTIES LEG1    28.24   0.01
983     19082022280448VR00683048    MOBILITY PACKAGE    3.39    0.00
984     19082022280448VR00683048    SURTAXE GASOIL  2.81    0.00
991     19082022280448VR00683044    EMPTIES LEG1    13.18   0.01
992     19082022280448VR00683044    MOBILITY PACKAGE    1.58    0.00
993     19082022280448VR00683044    SURTAXE GASOIL  1.31    0.00
1033    1908202228144810027446  MATERIAL LEG2   62.99   -0.01
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74029607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档