首页 > 解决方案 > 用于除法的熊猫数据框操作为 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:浮点除以零

有没有比运行循环更好的方法来做到这一点?

标签: pandasdataframe

解决方案


该条件应适用于双方

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)

推荐阅读