Pandas:如何创建yearweek变量?

2024-06-02 07:44:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个日期时间的数据帧

dates = pd.date_range('9/25/2010', periods=10, freq='D')

df = pd.DataFrame({'col':dates})
df['col']=pd.to_datetime(df['col'])
df['dow'] = df.col.dt.dayofweek
df['week'] = df.col.dt.to_period('W')
df['week_alt']=df.col.dt.year.astype(str) + '-w' + df.col.dt.week.astype(str)

df
Out[21]: 
         col  dow                  week  week_alt
0 2010-09-25    5 2010-09-20/2010-09-26  2010-w38
1 2010-09-26    6 2010-09-20/2010-09-26  2010-w38
2 2010-09-27    0 2010-09-27/2010-10-03  2010-w39
3 2010-09-28    1 2010-09-27/2010-10-03  2010-w39
4 2010-09-29    2 2010-09-27/2010-10-03  2010-w39
5 2010-09-30    3 2010-09-27/2010-10-03  2010-w39
6 2010-10-01    4 2010-09-27/2010-10-03  2010-w39
7 2010-10-02    5 2010-09-27/2010-10-03  2010-w39
8 2010-10-03    6 2010-09-27/2010-10-03  2010-w39
9 2010-10-04    0 2010-10-04/2010-10-10  2010-w40

在这里您可以看到一周从Monday开始,到Sunday结束。在

我想控制一周的开始时间。例如,如果周现在从星期日开始,那么2010-09-26将是2010-w39,而{}是{}。在

我怎么能在熊猫身上做到呢?在


Tags: to数据df时间dtcolaltpd
1条回答
网友
1楼 · 发布于 2024-06-02 07:44:52

更新:您可以在以下三个UNIX修饰符中进行选择:%U%V%W

%U week number of year, with Sunday as first day of week (00..53).

%V ISO week number, with Monday as first day of week (01..53).

%W week number of year, with Monday as first day of week (00..53).

In [189]: df.col.dt.strftime('%U-%V-%W')
Out[189]:
0    38-38-38
1    39-38-38
2    39-39-39
3    39-39-39
4    39-39-39
5    39-39-39
6    39-39-39
7    39-39-39
8    40-39-39
9    40-40-40
Name: col, dtype: object

%U年的第几周,星期天是一周的第一天(00..53)。在

^{pr2}$

%VISO周编号,星期一为一周的第一天(01..53)。在

In [191]: df.col.dt.strftime('%Y-w%V')
Out[191]:
0    2010-w38
1    2010-w38
2    2010-w39
3    2010-w39
4    2010-w39
5    2010-w39
6    2010-w39
7    2010-w39
8    2010-w39
9    2010-w40
Name: col, dtype: object

相关问题 更多 >