我在pandas中有以下数据帧
code amnt pre_amnt
123 200 200
124 234 0
125 231 231
126 236 0
128 122 130
Run Code Online (Sandbox Code Playgroud)
我只想在pre_amnt非零时进行减法.我想要的数据帧是
code amnt pre_amnt diff
123 200 200 0
124 234 0 0
125 231 231 0
126 236 0 0
128 122 130 8
Run Code Online (Sandbox Code Playgroud)
所以,如果pre_amnt为零则diff应该也是0.我怎么能在熊猫中做到这一点?
用途numpy.where:
m = df['pre_amnt'] > 0
df['diff'] = np.where(m, df['pre_amnt'] - df['amnt'], 0)
Run Code Online (Sandbox Code Playgroud)
另一个解决方案where:
df['diff'] = (df['pre_amnt'] - df['amnt']).where(m, 0)
Run Code Online (Sandbox Code Playgroud)
print (df)
code amnt pre_amnt diff
0 123 200 200 0
1 124 234 0 0
2 125 231 231 0
3 126 236 0 0
4 128 122 130 8
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55 次 |
| 最近记录: |