续约日期小于今天的日期(以熊猫为单位)

时间:2019-12-12 19:01:50

标签: pandas date

我在熊猫下面的数据框下面,条件是15天,如果续订日期等于15天,则应说“是”,如果续订日期已经过了今天,则应该是“ Y” ”,否则应为“ N”

Dataframe                       

Renew Date  Premises                    
27-Dec-19   A                   
9-Dec-19    B                   
28-Dec-19   C                   


Output                      

To-day   Premises    Renew Date  Days   Y / N   Remarks 
12-Dec-19   A        27-Dec-19     15    "Y"    15 days to renewal  
12-Dec-19   B         9-Dec-19     -3    "Y"    -3 days to renewal  
12-Dec-19   C        28-Dec-19     16    "N"    16 days to renewal  

1 个答案:

答案 0 :(得分:1)

IIUC:

df['Renew Date'] = pd.to_datetime(df["Renew Date"]) #change to datetime if string
df['Today'] = pd.Timestamp('now').normalize()
df['Days'] = (df['Renew Date'] - df['Today']).dt.days
df['Y / N'] = np.where(df['Days']>15, 'N', 'Y')
df['Remarks'] = [f'{i} days to renew' for i in df['Days']]
df

输出:

  Renew Date Premises      Today  Days Y / N           Remarks
0 2019-12-27        A 2019-12-12    15     Y  15 days to renew
1 2019-12-09        B 2019-12-12    -3     Y  -3 days to renew
2 2019-12-28        C 2019-12-12    16     N  16 days to renew