【问题标题】:Changed a column into datetime, but got it as string将一列更改为日期时间,但将其作为字符串
【发布时间】:2019-08-21 05:12:23
【问题描述】:

我成功地将列的 dtype 更改为 datetime。 但是,我得到了 TypeError: '>=' not supported between 'str' and 'datetime.datetime'。

我认为这是因为 dtype 是 datetime64[ns, pytz.FixedOffset(540)(不仅仅是 datetime64)。 但我不知道该怎么办。

在另一个笔记本上,我成功完成了。 (我用的笔记本是别人的,但原来的数据是一样的)

pd.to_datetime(data['action_time'], format='%Y-%m-%d')
0         2019-08-08 11:00:44+09:00
1         2019-08-08 11:00:47+09:00
2         2019-08-08 11:01:04+09:00
3         2019-08-08 11:01:07+09:00
4         2019-08-08 11:01:09+09:00
                     ...           
1123878   2019-08-14 23:59:56+09:00
1123879   2019-08-15 00:00:00+09:00
1123880   2019-08-15 00:00:01+09:00
1123881   2019-08-15 00:00:04+09:00
1123882   2019-08-15 00:00:04+09:00
Name: action_time, Length: 1123883, dtype: datetime64[ns, pytz.FixedOffset(540)]
data[(data['action_time'] >= dt.datetime(2019, 8, 8)) & (data['action_time'] <= dt.datetime(2019, 8, 14))]

我只是想减去一段时期。

【问题讨论】:

  • 在打印之前,您是否将 pd.to_datetime(data['action_time'], format='%Y-%m-%d') 分配给了另一个变量或自身?

标签: python pandas dataframe datetime


【解决方案1】:

我认为您需要将其重新分配以使其正常工作,因为如果解析成功,to_datetime 返回一个 DF,请参阅here

所以,类似:

data = pd.to_datetime(data['action_time'], format='%Y-%m-%d')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多