[英]Selective shifting of dataframe columns
I have a dataframe with a number of columns and would selectively like to lag all bar one column (named target) by a specified number of steps. 我有一个具有许多列的数据框,并且有选择地希望将所有列(命名为目标)滞后指定的步数。
def: shift_target(df,target,lag):
df[df.columns != target].shift(lag)
df = df.dropna()
return df
The above does not seem to work. 以上似乎不起作用。 Can i specify do not shift one column?
我可以指定不移一列吗?
eg 例如
You can construct a new dataframe. 您可以构造一个新的数据框。 This is usually more efficient than manipulating an existing dataframe via Pandas methods.
这通常比通过Pandas方法处理现有数据框更有效。 For example:
例如:
n = 4
res = df.iloc[:-n, 1:].copy()
res.index = df.index[n:]
res['Target'] = df['Target'].iloc[n:].values
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.