合并年和周列以创建日期时间并在 python 中排序
Merging year and week column to create datetime and sorting in python
示例数据
Year Week_No Value
2015 52 3
2016 2 7
2015 51 5
2016 1 6
2015 50 4
下面是我试过的代码
import datetime
d = "2015-50"
r = datetime.datetime.strptime(d + '-1', "%Y-%W-%w")
print(r)
2015-12-14 00:00:00
如何继续创建日期时间列?
你可以试试这个:
df['datetime'] = df.apply(lambda x: datetime.datetime.strptime(str(x.Year) + '-' + str(x.Week_No) + '-1', "%Y-%W-%w"), axis=1)
输出:
Year Week_No Value datetime
0 2015 52 3 2015-12-28
1 2016 2 7 2016-01-11
2 2015 51 5 2015-12-21
3 2016 1 6 2016-01-04
4 2015 50 4 2015-12-14
我认为在 pandas 中最好使用 to_datetime
并为星期几添加最后一个值 -1
:
df['datetime'] = pd.to_datetime(df.Year.astype(str) + '-' +
df.Week_No.astype(str) + '-1', format="%Y-%W-%w")
print (df)
Year Week_No Value datetime
0 2015 52 3 2015-12-28
1 2016 2 7 2016-01-11
2 2015 51 5 2015-12-21
3 2016 1 6 2016-01-04
4 2015 50 4 2015-12-14
示例数据
Year Week_No Value
2015 52 3
2016 2 7
2015 51 5
2016 1 6
2015 50 4
下面是我试过的代码
import datetime
d = "2015-50"
r = datetime.datetime.strptime(d + '-1', "%Y-%W-%w")
print(r)
2015-12-14 00:00:00
如何继续创建日期时间列?
你可以试试这个:
df['datetime'] = df.apply(lambda x: datetime.datetime.strptime(str(x.Year) + '-' + str(x.Week_No) + '-1', "%Y-%W-%w"), axis=1)
输出:
Year Week_No Value datetime
0 2015 52 3 2015-12-28
1 2016 2 7 2016-01-11
2 2015 51 5 2015-12-21
3 2016 1 6 2016-01-04
4 2015 50 4 2015-12-14
我认为在 pandas 中最好使用 to_datetime
并为星期几添加最后一个值 -1
:
df['datetime'] = pd.to_datetime(df.Year.astype(str) + '-' +
df.Week_No.astype(str) + '-1', format="%Y-%W-%w")
print (df)
Year Week_No Value datetime
0 2015 52 3 2015-12-28
1 2016 2 7 2016-01-11
2 2015 51 5 2015-12-21
3 2016 1 6 2016-01-04
4 2015 50 4 2015-12-14