熊猫日期条件计算

anshanno

我试图根据一个条件语句在Pandas中创建一列,该条件语句计算两个事件之间的时间。我可以计算出日期,但是当插入条件语句时:

def defect_age(df):
    if df['Status'] == 'R':
        return (pd.to_datetime(df['resolved_on'], errors='coerce') 
            - pd.to_datetime(df['submitted_on'])) / np.timedelta64(1, 'D')
    else:
        return 'null'

然后由列调用:

group_df['Age'] = group_df.apply(defect_age(group_df), axis=0)

我收到以下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我试图以这里提出的问题为基础...但是我没有太大的成功。任何帮助表示赞赏!

海盗

尝试使用以下定义 defect_age

def defect_age(df):
    resolved = pd.to_datetime(df.resolved_on, errors='coerce')
    submitted = pd.to_datetime(df.submitted_on)
    r = (resolved - submitted) / np.timedelta64(1, 'D')
    return np.where(df.Status == 'R', r, np.nan)

错误来自 if df['Status'] == 'R'

这将是一系列的布尔值,而不是需要的单个布尔值if您仍然想一次在整个系列中运行它。希望我给了您一些可以解决问题的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章