【问题标题】:Bug in PANDAS - ZeroDivisionError: float division by zeroPANDAS 中的错误 - ZeroDivisionError:浮点除以零
【发布时间】:2021-04-19 14:03:14
【问题描述】:

我昨天在 PANDAS 中发现了一个错误。 我还找到了一种解决方法,但我希望团队合作并解决它。

我有一个包含两列的数据框,我需要在“A”列和“B”列之间进行划分。 如果在“B”列中有一个“零”,唯一的方法是创建一个用“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

【问题讨论】:

标签: pandas dataframe filtering division


【解决方案1】:

这不是bug,因为你没有过滤列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']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多