我有以下内容:
> date1
Timestamp('2014-01-23 00:00:00', tz=None)
> date2
datetime.date(2014, 3, 26)
Run Code Online (Sandbox Code Playgroud)
我读了这个答案我可以pandas.to_datetime()用来转换Timestamps为datetime对象,但它似乎不起作用:
> pd.to_datetime(date1)
Timestamp('2014-01-23 00:00:00', tz=None)
Run Code Online (Sandbox Code Playgroud)
为什么?如何在这两种格式之间进行转换?
我有一个数据框,提供两个整数列,其中包含年份的一年和一周:
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)