我试图根据一个条件语句在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] 删除。
我来说两句