gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 22:52:31 24 4
gpt4 key购买 nike

我有一个数据框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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com