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']
我昨天在 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']