python - 如何在熊猫条件下做减法
问题描述
我在熊猫中有以下数据框
code amnt pre_amnt
123 200 200
124 234 0
125 231 231
126 236 0
128 122 130
我只想在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
所以,如果pre_amnt
为零,那么diff
也应该是 0。我怎样才能在熊猫中做到这一点?
解决方案
使用numpy.where
:
m = df['pre_amnt'] > 0
df['diff'] = np.where(m, df['pre_amnt'] - df['amnt'], 0)
另一个解决方案where
:
df['diff'] = (df['pre_amnt'] - df['amnt']).where(m, 0)
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
推荐阅读
- javascript - 无法访问弹出窗口元素...返回 null
- function - 函数中的 Dart 函数
- php - 使用 template_redirect 重定向 WooComm 页面
- python - Passing Python objects as arguments to tkinter's Entry validatecommand
- julia - 检查 Flux.jl 模型中的参数总数?
- python - How to display a Sympy matrix?
- java - RxJava 不显示数据
- java - How can I make certain rows bold in Jtable not depending from the value using custom cell renderer
- sql - 查询返回下个月的所有值
- alpha - D3D Alpha test not rendering back pixels on same object