python – 熊猫到日期和周

我有一些按年和周编制的数据.这是一个小样本

    week    cases
0   192801  7647
1   192802  11427
2   192803  11970
3   192804  12920
4   192805  14660

周数据看起来好像是%Y%W,但是当我尝试通过pd.to_datetime(df.week,format =’%Y%W)将其转换为datetime时,我会收到第一个月的第一天每年.

0   1928-01-01
1   1928-01-01
2   1928-01-01
3   1928-01-01
4   1928-01-01

到底是怎么回事?如何正确格式化周数据?

最佳答案
this thread开始,似乎只有周数不足以推断出日期.你也需要一周中的某一天. (我真的不确定为什么它不会默认为0 /星期日)

所以以下似乎做你想要的:

pd.to_datetime(df.week.map(lambda x: str(x)+'-0'), format="%Y%W-%w")

我们首先确保数据是str,然后在末尾附加’-0′(表示星期日).
然后使用格式中的额外%w来抓住“星期几”.

注意:
在日期时间文档中找到一条说明,解释了该行为.
Section 8.1.8 -> Notes -> Bullet-point #7

When used with the strptime() method, %U and %W are only used in
calculations when the day of the week and the calendar year (%Y) are
specified.

转载注明原文:python – 熊猫到日期和周 - 代码日志