Python 熊猫数据框检查前一天的新列

Python 熊猫数据框检查前一天的新列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个Dataframe,它有一个Datetime作为索引,还有一个名为“Holiday”的列,它是一个带有1或0的标志 因此,如果datetimeindex是假日,则假日列中有1,如果不是,则为0 我需要一个新列来说明给定的datetimeindex是否为假日后的第一天。新列应该只查看其前一天的标志“假日”是否设置为1,然后将其标志设置为1,否则为0 编辑 做: df['DayAfter'] = df.Holiday.shift(1).fillna(0) 具有以下输出:

我有一个Dataframe,它有一个Datetime作为索引,还有一个名为“Holiday”的列,它是一个带有1或0的标志

因此,如果datetimeindex是假日,则假日列中有1,如果不是,则为0

我需要一个新列来说明给定的datetimeindex是否为假日后的第一天。新列应该只查看其前一天的标志“假日”是否设置为1,然后将其标志设置为1,否则为0

编辑

做:

df['DayAfter'] = df.Holiday.shift(1).fillna(0)
具有以下输出:

                        Holiday    DayAfter     AnyNumber  
Datum                                                
...
2014-01-01 20:00:00         1        1.0          9  
2014-01-01 20:30:00         1        1.0          2  
2014-01-01 21:00:00         1        1.0          3  
2014-01-01 21:30:00         1        1.0          3  
2014-01-01 22:00:00         1        1.0          6  
2014-01-01 22:30:00         1        1.0          1  
2014-01-01 23:00:00         1        1.0          1  
2014-01-01 23:30:00         1        1.0          1  
2014-01-02 00:00:00         0        1.0          1  
2014-01-02 00:30:00         0        0.0          2  
2014-01-02 01:00:00         0        0.0          1  
2014-01-02 01:30:00         0        0.0          1 
...

如果您检查2014-01-02的第一个时间戳,则DayAfter标志设置正确。但其他标志是0。这是错误的。

创建一个独特的假日数组,并将其抵消一天

days = pd.Series(df[df.Holiday == 1].index).add(pd.DateOffset(1)).dt.date.unique()
创建一个包含一天假期偏移量(
days
)的新列


df['dayafter']=df.HOLIDAY.shift(1)
它将0写为“NaN”@DJKdf.HOLIDAY.shift(1).fillna(0)?谢谢!但是结果是错误的。顺便说一句:datetime有它的时间。shift只检查pre-dadetime值,我需要它只检查日期而不检查表中的时间stamp@Meiiso,很乐意帮忙
df['DayAfter'] = np.where(pd.Series(df.index).dt.date.isin(days),1,0)



                 Holiday  AnyNumber  DayAfter
Datum
2014-01-01 20:00:00        1          9         0
2014-01-01 20:30:00        1          2         0
2014-01-01 21:00:00        1          3         0
2014-01-01 21:30:00        1          3         0
2014-01-01 22:00:00        1          6         0
2014-01-01 22:30:00        1          1         0
2014-01-01 23:00:00        1          1         0
2014-01-01 23:30:00        1          1         0
2014-01-02 00:00:00        0          1         1
2014-01-02 00:30:00        0          2         1
2014-01-02 01:00:00        0          1         1
2014-01-02 01:30:00        0          1         1