添加一列以测量两个任务之间的时间差

2024-06-16 12:26:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想添加另一个列,用于测量某个特定任务(即“播种”)中每个任务的时间(以天为单位)

Data looks like this

此代码适用于单个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”对象是可变的,因此不能对它们进行散列


Tags: nameiddf时间thisdaysstartlike