【问题标题】:Filtering by datetime confusion按日期时间混淆过滤
【发布时间】:2018-06-17 00:27:54
【问题描述】:

我有一个不是索引的日期时间对象,当我过滤它时:

 df=df[(df['local_time']>=datetime.date(2015,2,18))]
 df=df.sort_values('local_time',ascending=[True])

为什么 df.head(1) 在我使用时显示 2-17-2015 作为第一个日期:>=datetime.date(2015,2,18)

【问题讨论】:

  • 您的错误无法重现,请添加您的示例数据
  • Ugg..我想我想通了..数据类型是 datetime64[ns, UTC] 世界时,它必须使用本地时间进行转换。
  • 抱歉,可点击的“复选标记”对我来说不是很直观......现在我知道了!

标签: python pandas datetime dataframe


【解决方案1】:

好的,我想出了一个解决办法。

不确定它为什么起作用,但是当我将它传递给 pd.Series 时 它可以工作...... 都返回 datetime64[ns, UTC] 类型,虽然它们看起来很相似,但它们的行为不同......仍然很奇怪:

修复:

 df['local_time']=pd.to_datetime(pd.Series(df.ts),utc=True) 

【讨论】:

    猜你喜欢
    • 2013-10-20
    • 2021-09-01
    • 2021-12-27
    • 1970-01-01
    • 2018-01-25
    • 2023-03-23
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多