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

我试图用同一行中前两列中的值之间的差异替换 pandas 数据帧的一列中的几个零。


   A     B      C

0  10    12     -2

1  6     3       0

2  5     18      0

3  3     11     -8

我想用和C中相应值之间的差值替换列中的零。仅替换零而不替换非零值。AB


慕婉清6462132
浏览 1449回答 3
3回答

冉冉说

尝试:mask = df['C'].eq(0)df.loc[mask, 'C'] = df.loc[mask, 'A'] - df.loc[mask, 'B']

HUX布斯

给定示例,最简单的解决方案只需删除现有C列并生成一个新列C:df.drop(['C'],axis=1,inplace=True)df['C'] = df['A'] - df['B']输出:  A      B       C0 10     12     -21 6      3       32 5      18    -133 3      11     -8

米脂

您可以使用maskdf['C'] = df.C.mask(df.C == 0, df.A - df.B)df    A   B   C0  10  12  -21   6   3   32   5  18 -133   3  11  -8或者不确定,但如果你想要这个df.C.update(df.A - df.B)df    A   B   C0  10  12  -21   6   3   32   5  18 -133   3  11  -8
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python