Bug in PANDAS - ZeroDivisionError: float division by zero

Bug in PANDAS - ZeroDivisionError: float division by zero

我昨天在 PANDAS 中发现了一个错误。 我也找到了一个解决方法,但我希望团队能够解决它。

我有一个包含两列的数据框,我需要在列 'A' 和列 'B' 之间进行划分。 如果在 'B' 列中有一个 'zero' ,唯一的方法是创建一个用 'B != 0' 过滤的临时数据框,然后继续创建列 'C' 没办法直接生成。

df 是包含“A”列和“B”列的数据框

以下工作区有效

df_temporary = df.loc[df['B'] != 0, ['A','B']]
df_temporary['C'] = df['A']/df['B']

下面直接处理不行

df.loc[df['B']!= 0, ['C']] = df['A']/df['B']

最后生成ZeroDivisionError: float division by zero

这不是错误,因为你没有过滤列 B,所以有除以 0

您需要像这样过滤 B 列:

 df['C'] = df['A']/df.loc[df['B']!= 0, 'B']

如果需要过滤两者 A, B 使用:

 df['C'] = df.loc[df['A']!= 0, 'A']/df.loc[df['B']!= 0, 'B']