Python 划分数据帧列并获取ZeroDivision错误:浮点除以零

Python 划分数据帧列并获取ZeroDivision错误:浮点除以零,python,pandas,Python,Pandas,我有一个数据框dayData,其中包括以下列'ratio'和'first\u power',类型如下: Name: ratio, dtype: float64 first power Name: first_power, dtype: object average power ratio average_power 0 5 8.0 1 6 4.0 2 7 0.0 3 0

我有一个数据框
dayData
,其中包括以下列
'ratio'
'first\u power'
,类型如下:

Name: ratio, dtype: float64 first power  
Name: first_power, dtype: object average power

  ratio   average_power
0     5            8.0
1     6            4.0
2     7            0.0
3     0            6.0
4     8            5.0
5     9            4.0
6     8            2.0
7     7            8.0
8     6            0.0
9     5            5.0
10    8            4.0
我的过程中的下一个阶段是使用以下公式将两列分隔开来,从而创建第二步功率:

dayData["second_step_power"] = np.where(dayData.average_power == 0.0, 0, dayData.first_power/dayData.average_power)
很明显,你不能除以零,所以在平均功率为零的情况下,我试图将第二步功率设置为0,但是我得到了错误:

ZeroDivisionError: float division by zero
有人能告诉我处理零的正确方法吗

我的理想输出是:

  ratio   average_power   second_step_power
0     5            8.0                0.625
1     6            4.0                1.500
2     7            0.0                0.000
3     0            6.0                0.000
4     8            5.0                1.600
5     9            4.0                2.250
6     8            2.0                4.000
7     7            8.0                0.875
8     6            0.0                0.000
9     5            5.0                1.000
10    8            4.0                2.000

感谢您可以首先将所有值设置为零,然后创建一个掩码,用有效分母定位所有行,即
power
大于零(
gt(0)
)。最后,将遮罩与
loc
一起使用,以计算
第二步功率

df['second_step_power'] = 0
mask = df.average_power.gt(0)
df.loc[mask, 'second_step_power'] = \
    df.loc[mask, 'first_power'] / df.loc[mask, 'average_power']

可能是浮动pt问题。修复程序可能使用:
np.isclose(dayData.average\u power,0)
。谢谢,我尝试了dayData[“second\u step\u power”]=np.where(np.isclose(dayData.average\u power,0),0,dayData.first\u power/dayData.average\u power),但遇到了同样的问题