pandas - 用于除法的熊猫数据框操作为 0
问题描述
我有一个包含 2 列 X 和 Y 的数据框。我想设置一个新系列,当 X=Y 时等于 X,当 X!=Y 时等于 x/(YX)。
如果尝试这样做:
df['temp'] = 0
df.loc[df.X == df.Y, 'temp'] = df.X
df.loc[df.X != df.Y, 'temp'] = df.X /(df.Y-df.X)
Z= df.temp
df = df.drop('temp', axis=1)
我明白了
ZeroDivisionError:浮点除以零
有没有比运行循环更好的方法来做到这一点?
解决方案
该条件应适用于双方
df['temp'] = 0
df.loc[df.X == df.Y, 'temp'] = df.X
df.loc[df.X != df.Y, 'temp'] = df.loc[df.X != df.Y,'X'] /(df.loc[df.X != df.Y,'Y']-df.loc[df.X != df.Y,'X'])
Z= df.temp
df = df.drop('temp', axis=1)
推荐阅读
- r - 有没有办法将 R 对象传输到 Linux 上的单独 R 会话?
- laravel - 在控制器上显示函数未从索引中获取值
- c# - Nuget 包依赖项上的 Azure 函数 System.IO.NotFoundException
- swift - 正则表达式匹配无效模式ios swift 4
- php - 创建嵌套的php数组元素
- node.js - Curl 命令未处理我对文件所做的更改
- php - 验证用户输入的小写字母
- android - BluetoothGattCharacteristic 限制导致问题?
- excel - 使用备用单元格引用拖动填充公式
- javascript - 使用 switchMap 发出一个热布尔可观察对象?