pandas 日期数据处理大全,按照年、季度、月、周、日筛选数据
import pandasas pd
import numpyas np
pd.set_option('display.width', 100000)
pd.set_option('display.max_columns', 10000)
pd.set_option('display.max_rows', 100000)
df = pd.read_csv(r'D:\bigData\手机终端销售统计.csv', header=0)
# 将订单日期转成日期格式
df['订单日期'] = pd.to_datetime(df['订单日期'])
# 将订单日期设置成索引
df = df.set_index('订单日期')
# 统计2020年的数据
print(df['2020'].head(10))
# 按年、月阶段统计
print(df['2019-12':'2020-01'])
# 统计具体某一天的数据,新手这里一定注意,如果统计具体一天的数据,一定加loc,我这这里踩坑了
print(df.loc['2020-01-31'])
# 这里统计具体某一天到某一天的数据
print(df['2019-12-06':'2019-12-06'])
df_period = df.to_period('M')
print(type(df_period))
print(type(df_period.index))
# 按照月份统计
print(df_period.head(10))
# 按季度统计
print(df.to_period("Q"))
# 按年统计
print(df.to_period('A'))
print(df_period.index.asfreq('A'))
print(df_period.index.asfreq('A-JAN'))
print(df_period.index.asfreq('Q'))
df_period.index.asfreq('Q-SEP')
print(df_period.index.asfreq('M'))
print(df_period.index.asfreq('B', how='start'))
print(df_period.index.asfreq('B', how='end'))
# 按周对数量进行汇总
print(df['数量'].resample('w').sum().head())
# 按月汇总,默认每个月的最后一天,如果想要按照每个月的第一天展示日期,df.resample('M'), “M”改成“MS”
print(df.resample('M').sum().head(10))
# 按照季度统计,默认每个季度的第一天
print(df.resample('QS').sum().head())
print(df.resample('AS').sum())
print(df.resample('AS').sum().to_period('A'))
print(df.resample('Q').sum().to_period('Q'))
print(df.resample('M').sum().to_period('M'))