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

2024-03-28 09:38:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框dayData,它包括下列列'ratio'和{},它们具有以下类型:

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

我的下一个步骤是通过使用以下公式将两列分开来创建第二阶幂:

^{pr2}$

很明显,你不能除以0,所以如果平均_幂为0,我试图将第二阶_阶跃幂设为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

谢谢


Tags: 数据name类型object步骤公式firstpower
1条回答
网友
1楼 · 发布于 2024-03-28 09:38:44

您可以首先将所有值设置为零,然后创建一个掩码来定位具有有效分母的所有行,即power大于零(gt(0))。最后,使用掩码和loc来计算second_step_power。在

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']

相关问题 更多 >