如何从 python 中的 yyyyww 列中提取一周的最后一天
How do I extract last day of week from yyyyww column in python
我有一个 df_mixed 列,其中包含 yyyyww 格式的数据,例如:201501、201502 等
我必须提取一周的最后一天并将其放入 ds 列。
例如:对于 201501,第 1 周的最后一天是 4-1-2015
对于 201502,最后一天是 11-1-2015
我必须遵循 ISO 格式。
根据 ISO 格式,2015 年的第一周从 2014 年 12 月 29 日开始到 2015 年 1 月 4 日结束
知道如何使用 python、pandas 和日期时间库吗?
假设输入:
df = pd.DataFrame({'date': ['201501', '201502']})
如果您选择星期日作为一周的最后一天:
df['date2'] = pd.to_datetime(df['date']+'Sun', format='%Y%W%a')
df
输出:
date date2
0 201501 2015-01-11
1 201502 2015-01-18
注意。如果您想要美国周格式,请使用 %U
代替 %W
并使用 Mon
作为一周的最后一天。请参阅 datetime
的文档以获得更多精度
IIUC 使用 pd.to_datetime
以 %Y%W%w
格式构建日期时间。我将 0
添加为工作日,因为您想要星期日,即一周的第一天:
df = pd.DataFrame({"Date":[201501, 201502]})
df["Date"] = pd.to_datetime((df["Date"]-1).astype(str)+"0", format="%Y%W%w")
print (df)
Date
0 2015-01-04
1 2015-01-11
我有一个 df_mixed 列,其中包含 yyyyww 格式的数据,例如:201501、201502 等 我必须提取一周的最后一天并将其放入 ds 列。
例如:对于 201501,第 1 周的最后一天是 4-1-2015 对于 201502,最后一天是 11-1-2015
我必须遵循 ISO 格式。 根据 ISO 格式,2015 年的第一周从 2014 年 12 月 29 日开始到 2015 年 1 月 4 日结束
知道如何使用 python、pandas 和日期时间库吗?
假设输入:
df = pd.DataFrame({'date': ['201501', '201502']})
如果您选择星期日作为一周的最后一天:
df['date2'] = pd.to_datetime(df['date']+'Sun', format='%Y%W%a')
df
输出:
date date2
0 201501 2015-01-11
1 201502 2015-01-18
注意。如果您想要美国周格式,请使用 %U
代替 %W
并使用 Mon
作为一周的最后一天。请参阅 datetime
的文档以获得更多精度
IIUC 使用 pd.to_datetime
以 %Y%W%w
格式构建日期时间。我将 0
添加为工作日,因为您想要星期日,即一周的第一天:
df = pd.DataFrame({"Date":[201501, 201502]})
df["Date"] = pd.to_datetime((df["Date"]-1).astype(str)+"0", format="%Y%W%w")
print (df)
Date
0 2015-01-04
1 2015-01-11