import pandas as pd
周期增长
按年周期增长
datetime_year_series = pd.Series(
pd.date_range("2000-01-01", periods=6, freq="Y")
)
#datetime_year_series
按月周期增长
datetime_month_series = pd.Series(
pd.date_range("2000-01-01", periods=6, freq="M")
)
#datetime_month_series
按日周期增长
#freq的默认参数就是"D",不加这个参数,也是以"日"增长。
datetime_day_series = pd.Series(
pd.date_range("2000-01-01", periods=6, freq="D")
)
#datetime_day_series
#时、分、秒、毫秒、纳秒分别是 h、T、s、us、ns
获取年、月、日
# get year
datetime_year_series.dt.year
# get month
datetime_month_series.dt.month
# get day
datetime_month_series.dt.day
#时、分、秒、毫秒、纳秒分别是 dt.hour、dt.minute、dt.second、dt.microsecond、dt.nanosecond
自行设置起始和终止时间
pd.date_range('2016-12-31', '2017-01-08', freq='D').to_series()
#年月日,同理
dayofweek 一个星期的哪一天
Monday=0, Sunday=6
#中间的分隔符,"/"和"-"都可以,不加也可以
s = pd.date_range('2021-12-10', '20211217', freq='D').to_series()
s.dt.dayofweek
判断月初、以及月末
s = pd.Series(pd.date_range("2018-02-27", periods=3))
#判断月初
s.dt.is_month_start
#判断月末
s.dt.is_month_end
data = pd.DataFrame(pd.date_range("2021-02-27", periods=3),columns=["date"])
data['start'] = data['date'].dt.is_month_start
data['end'] = data['date'].dt.is_month_end
data
判断某个日期在哪个季度
data2 = pd.DataFrame(pd.date_range("2021-03-30", periods=4),columns=["date"])
data2['quarter'] = data2['date'].dt.quarter
data2
判断季度初、以及季度末
data2['quarter_start'] = data2['date'].dt.is_quarter_start
data2['quarter_end'] = data2['date'].dt.is_quarter_end
data2
#同理,一年的第一天和最后一天,is_year_start, is_year_end
判断年是不是闰年(leap year)
data3 = pd.DataFrame(pd.date_range("2011-01-01","2021-01-01", freq="Y"),columns=["years"])
data3['leap'] = data3['years'].dt.is_leap_year
data3
返回月份的名字
data4 = pd.DataFrame(pd.date_range(start="2021-01", freq="M", periods = 5),columns=['month'])
data4['month_name'] = data4['month'].dt.month_name()
data4
返回天的名字
data5 = pd.DataFrame(pd.date_range(start="2021-12/11", freq="D", periods = 8),columns=['Day'])
data5['day_name'] = data5['Day'].dt.day_name()
data5
计算一天的描述
import numpy as np
data6 = pd.DataFrame(pd.Series(pd.to_timedelta(np.arange(5), unit='d')),columns=['Day'])
data6['seconds'] = data6['Day'].dt.total_seconds()
data6