1 回答
TA贡献1793条经验 获得超6个赞
IIUC,用于diff获取销售信息
ndf = df.loc[df['int_sp'].diff().ne(0)].add_prefix('sell_').reset_index().copy()
现在,使用掩码
mask = df['int_sp'].diff().shift(-1).fillna(0).ne(0)
此掩码过滤滞后值,即与购买相关的值。然后只需分配
ndf.loc[:, 'buy_value'] = df.loc[mask, 'value'].reset_index(drop=True)
ndf.loc[:, 'buy_date'] = df.loc[mask, 'date'].reset_index(drop=True)
ndf.loc[:, 'buy_time'] = df.loc[mask, 'time'].reset_index(drop=True)
sell_date sell_time sell_int_sp sell_value buy_value buy_date buy_time
index
1 20180903 09:16 11700 283.90 274.05 20180903.0 14:32
317 20180903 14:33 11600 295.35 284.50 20180904.0 09:31
391 20180904 09:32 11500 304.15 301.60 20180904.0 09:44
404 20180904 09:45 11600 282.40 282.40 20180904.0 09:45
405 20180904 09:46 11500 300.35 301.30 20180904.0 09:49
409 20180904 09:50 11600 280.40 279.25 20180904.0 10:55
475 20180904 10:56 11500 300.15 NaN NaN NaN
添加回答
举报