现实原因的冲突
https://cn.bing.com/search?q=国外的周是从周几开始
每星期的开始时间各国有所不同。许多英语国家、犹太教、日本是从星期日,埃及人的一星期是从星期六开始的。
多数欧洲国家都以星期一为一星期的第一天。而中国大陆习惯上也认为星期一是开始时间。
举例
尝试代码
尝试代码
#%%
import pandas as pd
import numpy as np
#%%
idx = pd.date_range('1/1/2021', periods=9, freq='D')
series = pd.Series(range(9), index=idx)
#%% 常规写法 (W默认右偏移,不同以普通的小时和天)
series.resample('W').sum()
#%% 对比,开启label='left' 开始从周日开始,但是实际上0+1=2,而不是3; 还需要设置区间,闭区间为左闭
series.resample('W', label='left').sum()
正确代码
series.resample('W', label='left', closed='left').sum()
官方文档解释如下,closed 和label两个参数:
closed : {'right', 'left'}, default None
Which side of bin interval is closed. The default is 'left'
for all frequency offsets except for 'M', 'A', 'Q', 'BM',
'BA', 'BQ', and 'W' which all have a default of 'right'.
label{‘right’, ‘left’}, default None
Which bin edge label to label bucket with. The default is ‘left’ for all frequency offsets except for ‘M’, ‘A’, ‘Q’, ‘BM’, ‘BA’, ‘BQ’, and ‘W’ which all have a default of ‘right’.
机翻
关闭:{'right','left'},默认值无关闭bin间隔的哪一侧。
除“ M”,“ A”,“ Q”,“ BM”,“ BA”,“ BQ”和“ W”外,所有频率偏移的默认值均为“ left”,均默认为“ right”
标签{'right','left'},默认无
用哪个箱子边缘标签给bin贴标签。除“M”、“A”、“Q”、“BM”、“BA”、“BQ”和“W”之外的所有频率偏移的默认值均为“left”,这些频率偏移的默认值均为“right”。
总之,这个除
就很灵性~
其他
W(周)默认右偏移,不同以普通的小时(‘H’)和天(‘D’)
M也是,使用‘MS’表示月初开始 (MS month start frequency)
其他详见 pandas timeseries-offset-aliases 的相关官方文档 https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html