将每行的值与唯一日期的先前值进行比较

时间:2019-01-21 10:11:32

标签: python-3.x pandas pandas-groupby

我必须创建一个单独的文件,其中显示了一行的arr_delay与上一行的比较。如果arr_delay与上一行相比较高,则arr_delay为1,如果小于则为0。

Data Sample

Output Sample

数据按降序排列。最后一班在最上面,第一班在最下面。

我可以比较首个航班和最后一个航班,但不能比较每一行的唯一日期,并创建一个像这样的表。

1 个答案:

答案 0 :(得分:1)

您可以尝试df.shiftnp.where

dataset['new_col'] = np.where(dataset['arr_delay'].shift(-1) < dataset['arr_delay'], 1, 0)

修改

dataset['new_col'] = 0
for unique in dataset.Data.unique():
    new_df = dataset[dataset.Date == unique].copy()
    new_df['new_col'] = np.where(new_df['arr_delay'].shift(-1) < new_df['arr_delay'], 1, 0)
    dataset.loc[dataset.Date == unique] = new_df 

编辑2 对于期望的格式,请尝试df.pivot

dataset.pivot(index = 'Date', columns = 'Aircraft', values ='new_col)