我试图用同一行中前两列中的值之间的差异替换熊猫数据框的一列中的几个零。
A B C
0 10 12 -2
1 6 3 0
2 5 18 0
3 3 11 -8
我想用C和 中的各个值之间的差异替换列中的A零B。仅替换零而不是非零值。
我试图用同一行中前两列中的值之间的差异替换熊猫数据框的一列中的几个零。
A B C
0 10 12 -2
1 6 3 0
2 5 18 0
3 3 11 -8
我想用C和 中的各个值之间的差异替换列中的A零B。仅替换零而不是非零值。
尝试:
mask = df['C'].eq(0)
df.loc[mask, 'C'] = df.loc[mask, 'A'] - df.loc[mask, 'B']
您可以使用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
给定示例,最简单的解决方案只是删除现有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