我有一个数据框,提供两个整数列,其中包含年份的一年和一周:
import pandas as pd
import numpy as np
L1 = [43,44,51,2,5,12]
L2 = [2016,2016,2016,2017,2017,2017]
df = pd.DataFrame({"Week":L1,"Year":L2})
df
Out[72]:
Week Year
0 43 2016
1 44 2016
2 51 2016
3 2 2017
4 5 2017
5 12 2017
Run Code Online (Sandbox Code Playgroud)
我需要从这两个数字创建一个datetime-object.
我试过这个,但它抛出一个错误:
df["DT"] = df.apply(lambda x: np.datetime64(x.Year,'Y') + np.timedelta64(x.Week,'W'),axis=1)
Run Code Online (Sandbox Code Playgroud)
然后我尝试了这个,它可以工作,但给出了错误的结果,就是它完全忽略了一周:
df["S"] = df.Week.astype(str)+'-'+df.Year.astype(str)
df["DT"] = df["S"].apply(lambda x: pd.to_datetime(x,format='%W-%Y'))
df
Out[74]:
Week Year S DT
0 43 2016 43-2016 2016-01-01
1 44 2016 44-2016 2016-01-01
2 51 2016 51-2016 2016-01-01
3 …Run Code Online (Sandbox Code Playgroud) 我想根据模型的日期时间属性按日期间隔对查询集进行分组。我想每天、每周和每月显示模型的平均值。
例如
这可以用标准的 Django 查询集 API 来实现吗?
样本数据:
Week Price
2011-31 1.58
2011-32 1.9
2011-33 1.9
2011-34 1.9
Run Code Online (Sandbox Code Playgroud)
我有一个像上面这样的数据框,我想将“周”列类型从字符串转换为日期时间。
我的代码:
data['Date_Time'] = pd.to_datetime(data.Week, format='%Y-%W')
data = data.drop(['Week'], axis=1)
data.index = data.Date_Time
Run Code Online (Sandbox Code Playgroud)
错误:
“ValueError:无法使用没有日期和年份的‘%W’或‘%U’”
我有一些按年和周格式化的数据。这是一个小样本
week cases
0 192801 7647
1 192802 11427
2 192803 11970
3 192804 12920
4 192805 14660
Run Code Online (Sandbox Code Playgroud)
周数据看起来像是格式一样%Y%W,但是当我尝试通过pd.to_datetime(df.week, format = '%Y%W)每年将其转换为日期时间时,会收到每年第一个月的第一天。
0 1928-01-01
1 1928-01-01
2 1928-01-01
3 1928-01-01
4 1928-01-01
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?如何正确格式化星期数据?
我想要基于周数的当前周的所有日期。
我可以得到周数
import datetime
weeknum=datetime.datetime.now().isocalendar()[1]
Run Code Online (Sandbox Code Playgroud)
结果是 20。
想要第 20 周的所有日期。最终输出应该是
dates=['2019-05-12','2019-05-13','2019-05-14','2019-05-15','2019-05-16','2019-05-17','2019-05-18']
Run Code Online (Sandbox Code Playgroud)
请帮我。
为了将带有年份和一周的两列转换为日期,我希望执行以下操作:
df['formatted_date'] = df.year*100+df.weekofyear
df['date'] = pd.to_datetime(df['formatted_date'], format='%Y%w')
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用,给出了ValueError:
ValueError: unconverted data remains: 01
Run Code Online (Sandbox Code Playgroud)
我发现的解决方法是将一年中的一周转换为一年中的一天并使用 year-dayofyear%Y%j格式:
df['formatted_date'] = df.year*1000+df.weekofyear*7-6
df['date'] = pd.to_datetime(df['formatted_date'], format='%Y%j')
Run Code Online (Sandbox Code Playgroud)
第一行变得丑陋,但这工作正常。一年中的第几周在 (00,53) 范围内。任何想法,为什么优雅的方式不起作用?
我需要一个函数,该函数分别返回给定星期数(和年份)的第一天和最后一天的星期一和星期日。
在1月1日不是星期一的几周里有困难,所以我无法使用这个标准datetime.datetime.strptime()。
我有: 一周数 一年中的一天 我想从中找到日期。如何在 Python 中做到这一点?
例如 2020 周 1 周六 预计产量 01/04/2020