【问题标题】:Handling inf in pandas dataframe?处理熊猫数据框中的inf?
【发布时间】:2019-10-24 23:21:25
【问题描述】:

我正在对一个数据框进行计算,最终将一列除以零。我不想删除具有 inf 值的行。我想知道怎么处理?

我尝试将其转换为 NaN 但不起作用。

另外,最终目标是使用df['Days needed'] 列并将其添加到df['Time']

我试过这个,但最终在 inf 上出错,

df['Time'] = pd.to_datetime(df['Time'])
temp = df['Days needed'].apply(np.ceil).apply(lambda x: pd.Timedelta(x, unit='D'))
df['Day'] = df['Time'] + temp

我得到错误

溢出错误:无法将浮点无穷大转换为临时整数。

【问题讨论】:

  • 任何样本数据和预期输出?
  • 如果您不需要对它们进行计算,但想保留它们,您可以这样做,df.loc[df['Time'].isnul()==False,'Day'] = df['Time'] + temp 我假设您已在上面将它们更改为 nan。
  • 如果你不关心保留它们,你也可以用 NaN 替换你的 inf 值:df['Time'].replace([np.inf, -np.inf], np.nan)。在您有 Inf 的情况下,您的计算应该评估为 NaN。

标签: python pandas dataframe datetime error-handling


【解决方案1】:
df['Time'].replace([np.inf, -np.inf], np.nan)

【讨论】:

    猜你喜欢
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2016-02-06
    • 2018-10-20
    • 1970-01-01
    相关资源
    最近更新 更多