python - 划分数据帧列并获取 ZeroDivisionError : float division by zero

标签 python pandas

我有一个数据框dayData,其中包括以下列'ratio''first_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

我的流程的下一阶段是通过使用以下公式除以 2 列来创建第二阶幂:

dayData["second_step_power"] = np.where(dayData.average_power == 0.0, 0, dayData.first_power/dayData.average_power)

显然你不能除以零,所以如果average_power为零,我试图将second_step_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一起计算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']

关于python - 划分数据帧列并获取 ZeroDivisionError : float division by zero,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38546275/

相关文章:

python - python 是否足够聪明,可以用常量结果替换函数调用?

python - 检查子进程调用是否成功执行

python - 使用 Python 更新媒体维基文章?

python - Pandas 数据框将多个值变量 reshape /堆叠到单独的列中

python - 在Python中的pandas数据框中使用lambda函数使用多种文本格式?

python - 异步操作应该用@asyncio.coroutine 装饰什么?

Python-获取图像的白色像素

python - Pandas - Groupby - 捕获列的第一个值 - 错误的输出

python - pandas在Excel writer中设置单元格格式

python - pandas groupby datetime.date 对象不一致