为了账号安全,请及时绑定邮箱和手机立即绑定

用前一行值之间的差值替换数据帧列中的选定值

用前一行值之间的差值替换数据帧列中的选定值

慕婉清6462132 2023-08-22 16:29:10
我试图用同一行中前两列中的值之间的差异替换 pandas 数据帧的一列中的几个零。   A     B      C0  10    12     -21  6     3       02  5     18      03  3     11     -8我想用和C中相应值之间的差值替换列中的零。仅替换零而不替换非零值。AB
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

尝试:


mask = df['C'].eq(0)

df.loc[mask, 'C'] = df.loc[mask, 'A'] - df.loc[mask, 'B']


查看完整回答
反对 回复 2023-08-22
?
HUX布斯

TA贡献1876条经验 获得超6个赞

给定示例,最简单的解决方案只需删除现有C列并生成一个新列C:


df.drop(['C'],axis=1,inplace=True)

df['C'] = df['A'] - df['B']

输出:


  A      B       C

0 10     12     -2

1 6      3       3

2 5      18    -13

3 3      11     -8


查看完整回答
反对 回复 2023-08-22
?
米脂

TA贡献1836条经验 获得超3个赞

您可以使用mask

df['C'] = df.C.mask(df.C == 0, df.A - df.B)

df

    A   B   C

0  10  12  -2

1   6   3   3

2   5  18 -13

3   3  11  -8

或者


不确定,但如果你想要这个


df.C.update(df.A - df.B)

df

    A   B   C

0  10  12  -2

1   6   3   3

2   5  18 -13

3   3  11  -8


查看完整回答
反对 回复 2023-08-22
  • 3 回答
  • 0 关注
  • 1360 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信