我想添加另一个列,用于测量某个特定任务(即“播种”)中每个任务的时间(以天为单位)
此代码适用于单个fld_id,并将第一行作为参考:#为每个任务wrt的开始日期添加一列,以表示第一个开始日期
df["PastTime"] = df['ssn_start_utc'] - df['ssn_start_utc'][0]
Resultant column looks like this
但我有多个fld_id,每个人都有许多其他任务,其中包括播种。我需要添加一个过去时间列,用于测量播种任务与该特定字段的其他任务之间的时间差。
期望输出:
df = pd.DataFrame({'ssn_start_utc':pd.date_range('1/1/2011', periods=6, freq='D'), 'fld_id':[100,100,100,101,101,101], 'task_name': ['sowing','fungicide','insecticide','combine',''combine','sowing'], 'pasttime' :[ 0 days, 1 days, 2 days, 3 days, -1 days, 0 days] })
我尝试过使用groupby:
df['pasttime'] = df.groupby(['fld_id'])['ssn_start_utc'].transform(
df['ssn_start_utc'] - df.loc[df['name']=='sowing','ssn_start_utc'].values[0]) ```
但它显示TypeError:“Series”对象是可变的,因此不能对它们进行散列
目前没有回答
相关问题 更多 >
编程相关推荐