python – 在pandas dataframe中将单个列向前移动几个日期
发布时间:2020-12-20 11:08:02 所属栏目:Python 来源:网络整理
导读:我想在以下数据帧中提前3天将列val中的所有值移动: datetime val val_b12/20/2010 2312/21/2010 1212/22/2010 23 2712/23/2010 2612/24/2010 2812/25/2010 1712/26/2010 2612/27/2010 21 1412/28/2010 2012/29/2010 1812/30/2010 15 2212/31/2010 201/1/201
我想在以下数据帧中提前3天将列val中的所有值移动:
datetime val val_b 12/20/2010 23 12/21/2010 12 12/22/2010 23 27 12/23/2010 26 12/24/2010 28 12/25/2010 17 12/26/2010 26 12/27/2010 21 14 12/28/2010 20 12/29/2010 18 12/30/2010 15 22 12/31/2010 20 1/1/2011 13 1/2/2011 12 30 1/3/2011 25 1/4/2011 15 1/5/2011 19 1/6/2011 14 我尝试使用pd.DateOffset函数,但是hat会提前移动所有列,我不希望这样. 解决方法
首先创建DatetimeIndex,然后使用参数freq
shift :
df['datetime'] = pd.to_datetime(df['datetime']) df = df.set_index('datetime') df['val'] = df['val'].shift(3,freq='d') print (df) val val_b datetime 2010-12-20 NaN 23 2010-12-21 NaN 12 2010-12-22 NaN 27 2010-12-23 NaN 26 2010-12-24 NaN 28 2010-12-25 23.0 17 2010-12-26 NaN 26 2010-12-27 NaN 14 2010-12-28 NaN 20 2010-12-29 NaN 18 2010-12-30 21.0 22 2010-12-31 NaN 20 2011-01-01 NaN 13 2011-01-02 15.0 30 2011-01-03 NaN 25 2011-01-04 NaN 15 2011-01-05 12.0 19 2011-01-06 NaN 14 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |