pandas取得四半期、月次、年度末尾日

1860 ワード

      sql  dateadd、datesub   
         
import datetime
import pandas as pd
z=datetime.datetime(2016,12,5)
z=datetime.datetime.strptime('20150112','%Y%m%d')
for x in ['01','02','03','04','05','06','07','08','09','10','11','12']:
    d='2015'+x+'12'
    z=datetime.datetime.strptime(d,'%Y%m%d')#  
    z1=z+pd.tseries.offsets.DateOffset(days=1-z.day)#     
    #     ,          month=-1,  z 12 31 ,       11 30,  31      10 31,    
    #z1_last=(z+pd.tseries.offsets.DateOffset(days=1-z.day))+pd.tseries.offsets.DateOffset(months=-1)
    z2=z+pd.tseries.offsets.DateOffset(days=1-z.day)+pd.tseries.offsets.DateOffset(months=1)+pd.tseries.offsets.DateOffset(days=-1)#      
    x1 = z + pd.tseries.offsets.DateOffset(months=-((z.month - 1) % 3), days=1 - z.day)  #      
    x2 = z + pd.tseries.offsets.DateOffset(months=3 - ((z.month - 1) % 3), days=-z.day)  #       
    y1 = z + pd.tseries.offsets.DateOffset(months=1 - z.month, days=1 - z.day)  #      
    y2 = z + pd.tseries.offsets.DateOffset(years=1,months=1 - z.month, days= - z.day)  #       
    print(d,':',' :',z1,z2,' :',x1,x2)
print(y1.strftime("%Y-%m-%d"),y2.strftime("%Y-%m-%d"))

      =     +1 -1 
      =     +3 -1 
      =     +1 -1 

     :
datetime.datetime.now()+pd.tseries.offsets.DateOffset(days=-1)
     :
datetime.datetime.now().weekday()

      :
start = datetime.datetime.strptime('2018-01-01', '%Y-%m-%d')
end = datetime.datetime.strptime('2018-01-08', '%Y-%m-%d')
for x in pd.date_range(start,end,freq="3D"):  #50min 
    print(x.strftime('%Y%m%d'))

     
"  "+"       "[(datetime.datetime.now()).weekday()]