首页 > 解决方案 > 熊猫根据过去的持续时间添加新列

问题描述

我有一个熊猫数据框

期间 特征_x
202004 值_a
202003 值_b
202002 值_c
202001 值_d

我想在表中附加参数历史字段,例如;

期间 特征_x 特征_x_t1 特征_x_t2
202004 值_a 值_b 值_c
202003 值_b 值_c 值_d
202002 值_c 值_d
202001 值_d

那时,我找不到合适的解决方案。有什么解决方案或建议吗?

标签: pythonpandasdataframe

解决方案


您可以为此使用for loopandshift()方法:

for x in range(1,len(df)+1):
    df['feature_x_t'+str(x)]=df['feature_x'].shift(-x)

现在,如果您打印df,您将获得:

    DURATION    feature_x   feature_x_t1    feature_x_t2    feature_x_t3    feature_x_t4
0   202004      value_a     value_b         value_c         value_d         NaN
1   202003      value_b     value_c         value_d         NaN             NaN
2   202002      value_c     value_d         NaN             NaN             NaN
3   202001      value_d     NaN             NaN             NaN             NaN

推荐阅读