Python 2.7 从日期时间提取周数(Python)
我有一个数据帧:Python 2.7 从日期时间提取周数(Python),python-2.7,pandas,Python 2.7,Pandas,我有一个数据帧: time year month 0 12/28/2013 0:17 2013 12 1 12/28/2013 0:20 2013 12 2 12/28/2013 0:26 2013 12 3 12/29/2013 0:20 2013 12 4 12/29/2013 0:26 2013 12 5 12/30/2013 0:31 2013 12 6 12/30/2013 0:31 2
time year month
0 12/28/2013 0:17 2013 12
1 12/28/2013 0:20 2013 12
2 12/28/2013 0:26 2013 12
3 12/29/2013 0:20 2013 12
4 12/29/2013 0:26 2013 12
5 12/30/2013 0:31 2013 12
6 12/30/2013 0:31 2013 12
7 12/31/2013 0:17 2013 12
8 12/31/2013 0:20 2013 12
9 12/31/2013 0:26 2013 12
10 1/1/2014 4:30 2014 1
11 1/1/2014 4:34 2014 1
12 1/1/2014 4:37 2014 1
13 1/2/2014 4:30 2014 1
14 1/2/2014 5:30 2014 1
15 1/3/2014 4:30 2014 1
16 1/3/2014 4:34 2014 1
17 1/3/2014 4:37 2014 1
18 1/4/2014 4:30 2014 1
19 1/4/2014 4:34 2014 1
20 1/4/2014 4:37 2014 1
我使用以下代码提取周信息:
df['week'] = df['time'].dt.week
这使得数据帧如下所示:
time year month week
0 2013-12-28 00:17:00 2013 12 52
1 2013-12-28 00:20:00 2013 12 52
2 2013-12-28 00:26:00 2013 12 52
3 2013-12-29 00:20:00 2013 12 52
4 2013-12-29 00:26:00 2013 12 52
5 2013-12-30 00:31:00 2013 12 1
6 2013-12-30 00:31:00 2013 12 1
7 2013-12-31 00:17:00 2013 12 1
8 2013-12-31 00:20:00 2013 12 1
9 2013-12-31 00:26:00 2013 12 1
10 2014-01-01 04:30:00 2014 1 1
11 2014-01-01 04:34:00 2014 1 1
12 2014-01-01 04:37:00 2014 1 1
13 2014-01-02 04:30:00 2014 1 1
14 2014-01-02 05:30:00 2014 1 1
15 2014-01-03 04:30:00 2014 1 1
16 2014-01-03 04:34:00 2014 1 1
17 2014-01-03 04:37:00 2014 1 1
18 2014-01-04 04:30:00 2014 1 1
19 2014-01-04 04:34:00 2014 1 1
20 2014-01-04 04:37:00 2014 1 1
我想创建另一个列,显示年度周(例如2013-52、2014-1)。问题是,当我将第5行到第9行中的两列(年、周)合并在一起时,结果是2013-1,即2013年的第一周。这是不对的。这个问题有什么解决办法吗?正如@TrigonaMinima所指出的,ISO 8601定义的一年中的第一周(如下所示): 这是第一个星期的大多数天(4天或更多天)在 一月
在您的例子中,week=
1
在12月有2天,其余的在1月,因此符合第一周的定义。使用dt.strftime
参考文献
这似乎是正确的-@凯文很高兴我能帮上忙
df.time.dt.strftime('%Y-%W')
0 2013-51
1 2013-51
2 2013-51
3 2013-51
4 2013-51
5 2013-52
6 2013-52
7 2013-52
8 2013-52
9 2013-52
10 2014-00
11 2014-00
12 2014-00
13 2014-00
14 2014-00
15 2014-00
16 2014-00
17 2014-00
18 2014-00
19 2014-00
20 2014-00
Name: time, dtype: object