pandas - 使用 to_datetime 将数据框对象转换为日期
问题描述
我有一个如下所示的数据集:
date id
0 2014-01-01 11000929
1 2014-01-01 11000190
2 2014-01-01 11000216
3 2014-01-01 11000822
4 2014-01-01 11000971
5 2014-01-01 11000721
6 2014-01-01 11000970
7 2014-01-01 11000574
8 2014-01-01 11000967
9 2014-01-01 11000172
10 2014-01-01 11000208
11 2014-01-01 11000966
12 2014-01-01 11000344
13 2014-01-01 11000965
14 2014-01-01 11000935
15 2014-01-01 11000964
16 2014-01-01 11000741
17 2014-01-01 11000868
18 2014-01-01 11000035
19 2014-01-01 11000203
20 2014-01-02 11000574
如您所见,不同产品有很多重复的日期时间,我将把这个表与另一个表合并,这需要我将当前和对象的日期列转换为 datetime64[ns]。
我试过了
df_date_id.date = pd.to_datetime(df_date_id.date)
但我最终遇到了错误:
TypeError: <class 'pandas._libs.tslibs.period.Period'> is not convertible to datetime
ps:我要合并的表如下所示:
date id score
0 2014-01-01 11000035 75
1 2014-01-02 11000035 84
2 2014-01-03 11000035 55
所以两个表的日期格式对我来说都是一样的。提前致谢。
解决方案
我认为有必要将期间转换为日期时间to_timestamp
:
df['date'] = df['date'].dt.to_timestamp()
print (df['date'].dtypes)
datetime64[ns]
另一种解决方案是将另一个列转换DataFrame
为周期,例如:
df2['date'] = df2['date'].dt.to_period('d')