我有一个很大的问题,datetime并timestamp与我的工作DataFrame。我想确定一个日期的周数,但我发现了一些不一致的地方。这里的情况:
df = pd.DataFrame(['2018-12-28', '2018-12-29', '2018-12-30', '2018-12-31',
'2019-01-01', '2019-01-02', '2019-01-03', '2019-01-04'],
columns=['datestr'])
df.date = pd.to_datetime(ddf.datestr, format='%Y-%m-%d')
df['week'] = ddf.date.apply(lambda x: x.week)
df['m'] = ddf.date.apply(lambda x: (x.year, x.week))
df['weekpy'] = ddf.m.apply(lambda d: datetime.strptime(str(d)+'-1', "(%Y, %W)-%w"))
给我
datestr week m weekpy
0 2018-12-28 52 (2018, 52) 2018-12-24
1 2018-12-29 52 (2018, 52) 2018-12-24
2 2018-12-30 52 (2018, 52) 2018-12-24
3 2018-12-31 1 (2018, 1) 2018-01-01
4 2019-01-01 1 (2019, 1) 2019-01-07
5 2019-01-02 1 (2019, 1) 2019-01-07
6 2019-01-03 1 (2019, 1) 2019-01-07
7 2019-01-04 1 (2019, 1) 2019-01-07
正如你所看到的,日期2018-12-31 为timestamp是在今年(星期一)2019年的第一个星期,但仍是2018年。此外,对于datetime2019年第一周的第一天是2019-01-07。
我们该如何处理?这样做的目标是按周分组
慕莱坞森
弑天下
相关分类