Python 熊猫得到以前日期的索引

Python 熊猫得到以前日期的索引,python,pandas,datetime,dataframe,Python,Pandas,Datetime,Dataframe,我有一个带有日期列的dataframe,我想在dataframe中添加一个带有上一个日期索引的新列。如何做到这一点? 样本df: index Date 0 2015-10-03 1 2015-11-03 2 2015-11-30 3 2015-11-30 4 2015-12-03 期望输出: index Date previous_day 0 2015-10-03 0 1 2015-11-03 0 2 2015-11-30 1 3 2015-11-30 1 4 2015-12-0

我有一个带有日期列的dataframe,我想在dataframe中添加一个带有上一个日期索引的新列。如何做到这一点? 样本df:

index Date
0 2015-10-03 
1 2015-11-03 
2 2015-11-30 
3 2015-11-30  
4 2015-12-03 
期望输出:

index Date previous_day
0 2015-10-03 0
1 2015-11-03 0
2 2015-11-30 1
3 2015-11-30 1 
4 2015-12-03 3
  • 因为在索引1中没有前一天,所以我希望前一天中有1
  • 由于指数2的日期与指数3相同,我预计指数3在前一天为1

  • 谢谢,

    我认为您需要将
    重复的
    日期列的
    值的
    索引
    替换到
    NaN
    ,然后转发填充这些值。还需要将索引的第一个值重命名为
    1
    ,最后一个值减去
    1

    注意:解决方案仅在唯一单调索引(
    0,1,2,…
    )时有效


    索引2的日期与索引3的日期不同@harshil9968索引2(2015-11-30)的日期与索引3(2015-11-30)的日期相同是的,工作正常,我通过
    df.reset_index(drop=True,inplace=True)确保唯一单调索引
    Super,这是一个非常好的主意;)
    #see notice above 
    df.reset_index(drop = True, inplace = True)
    
    df['prev'] = df.rename(index={0:1})
                  .index.to_series()
                  .where(~df['Date'].duplicated()).ffill()
                  .astype(int)
                  .sub(1).values
    print (df)
                Date  prev
    index                 
    0     2015-10-03     0
    1     2015-11-03     0
    2     2015-11-30     1
    3     2015-11-30     1
    4     2015-12-03     3