pandas 获取季度、月度、年度首尾日期

时间:2024-11-11 20:03:26
可实现类似于sql中的dateadd、datesub的功能
两种获取日期的方式
import datetime
import pandas as pd
z=(2016,12,5)
z=('20150112','%Y%m%d')
for x in ['01','02','03','04','05','06','07','08','09','10','11','12']:
    d='2015'+x+'12'
    z=(d,'%Y%m%d')#当天
    z1=z+(days=)#当月第一天
    #上月第一天,注意切不可直接加一个month=-1,如果z为12月31日,取了上月就变成11月30,再减31天就变成了了10月31,是错误的
    #z1_last=(z+(days=))+(months=-1)
    z2=z+(days=)+(months=1)+(days=-1)#当月最后一天
    x1 = z + (months=-(( - 1) % 3), days=1 - )  # 当季第一天
    x2 = z + (months=3 - (( - 1) % 3), days=-)  # 当季最后一天
    y1 = z + (months=1 - , days=1 - )  # 当年第一天
    y2 = z + (years=1,months=1 - , days= - )  # 当年最后一天
    print(d,':','月:',z1,z2,'季:',x1,x2)
print(("%Y-%m-%d"),("%Y-%m-%d"))

当月最后一天=当月第一天+1月-1天
当季最后一天=当季第一天+3月-1天
当年最后一天=当年第一天+1年-1天

今天前一天:
()+(days=-1)
今天星期几:
().weekday()

生成时间序列:
start = ('2018-01-01', '%Y-%m-%d')
end = ('2018-01-08', '%Y-%m-%d')
for x in pd.date_range(start,end,freq="3D"):  #50min等
    print(('%Y%m%d'))

中文星期几
"星期"+"一二三四五六日"[(()).weekday()]