首页 > 解决方案 > 使用 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

所以两个表的日期格式对我来说都是一样的。提前致谢。

标签: pandasdatetimedataframemerge

解决方案


我认为有必要将期间转换为日期时间to_timestamp

df['date'] = df['date'].dt.to_timestamp()
print (df['date'].dtypes)
datetime64[ns]

另一种解决方案是将另一个列转换DataFrame为周期,例如:

df2['date'] = df2['date'].dt.to_period('d')

推荐阅读