我有以下pandas.Dataframe
:
Date-Time Week Month
2017-07-29 16:05:00 30 Jul-17
2017-07-29 23:58:00 30 Jul-17
2017-07-30 04:46:00 31 Jul-17
2017-07-30 10:57:00 31 Jul-17
2017-07-31 09:36:00 31 Jul-17
2017-07-31 10:46:00 31 Jul-17
2017-08-01 09:06:00 31 Aug-17
2017-08-01 09:13:00 31 Aug-17
2017-08-02 16:02:00 31 Aug-17
2017-08-02 16:06:00 31 Aug-17
2017-08-02 16:55:00 31 Aug-17
2017-08-02 18:57:00 31 Aug-17
2017-08-02 21:56:00 31 Aug-17
2017-08-03 08:49:00 31 Aug-17
2017-08-03 14:16:00 31 Aug-17
2017-08-04 09:09:00 31 Aug-17
2017-08-04 10:08:00 31 Aug-17
2017-08-05 11:24:00 31 Aug-17
2017-08-05 12:42:00 31 Aug-17
2017-08-06 03:47:00 32 Aug-17
2017-08-06 03:55:00 32 Aug-17
2017-08-07 08:57:00 32 Aug-17
2017-08-07 11:35:00 32 Aug-17
有没有一种方法可以将每周的月份值标准化为工作日(星期三)所属的月份的值?
在上述数据框中,第31周的星期三位于8月,因此第31周的月列应如下所示:
Date-Time Week Month
2017-07-29 16:05:00 30 Jul-17
2017-07-29 23:58:00 30 Jul-17
2017-07-30 04:46:00 31 Aug-17
2017-07-30 10:57:00 31 Aug-17
2017-07-31 09:36:00 31 Aug-17
2017-07-31 10:46:00 31 Aug-17
2017-08-01 09:06:00 31 Aug-17
2017-08-01 09:13:00 31 Aug-17
2017-08-02 16:02:00 31 Aug-17
2017-08-02 16:06:00 31 Aug-17
2017-08-02 16:55:00 31 Aug-17
2017-08-02 18:57:00 31 Aug-17
2017-08-02 21:56:00 31 Aug-17
2017-08-03 08:49:00 31 Aug-17
2017-08-03 14:16:00 31 Aug-17
2017-08-04 09:09:00 31 Aug-17
2017-08-04 10:08:00 31 Aug-17
2017-08-05 11:24:00 31 Aug-17
2017-08-05 12:42:00 31 Aug-17
2017-08-06 03:47:00 32 Aug-17
2017-08-06 03:55:00 32 Aug-17
2017-08-07 08:57:00 32 Aug-17
2017-08-07 11:35:00 32 Aug-17
请注意,数据框的“星期”和“月”列均来自同一数据框的“日期-时间”列。
最佳答案
可以按照以下步骤完成:
df['DWY'] = df['Date-Time'].dt.strftime('%U-%Y')
df['DWY'] = '3-' + df['DWY'].astype(str)
for i in df.index:
df['DWY'][i] = dt.strptime(df['DWY'][i],'%w-%U-%Y')
但是,如果有更有效的方法,请告诉我。
编辑:
for循环可以替换为:
df['DWY'] = pd.to_datetime(df['DWY'],format='%w-%U-%Y')
关于python - 将整周的月值设置为工作日中的月值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47626749/