而不是通过日期(创建日期时间对象)使用 dayofweek 属性(这会更快):
In [1]: rng = pd.date_range('1/1/2013', periods=72, freq='D')
In [2]: (rng.dayofweek + 1 ) % 7
Out[2]:
array([2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3,
4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5,
6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0, 1, 2, 3, 4, 5, 6, 0,
1, 2, 3], dtype=int32)
你可以把它作为一个属性:
In [3]: rng.my_dayofweek = (rng.dayofweek + 1 ) % 7
同样,您可以计算自己的一周:
In [4]: rng.my_week = rng.map(lambda x: x.week if x.dayofweek else x.week - 1)
然后您可以将其作为属性使用。
.
datetime.dateweekday
方法不是特定于语言环境的,它是硬编码的(这是它的文档字符串):
返回日期所代表的星期几。
Monday == 0 ... Sunday == 6