【问题标题】:Date Manipulation and Comparisons Python,Pandas and Excel日期操作和比较 Python、Pandas 和 Excel
【发布时间】:2019-06-17 08:11:12
【问题描述】:

我在 Excel 表中有一个日期时间列 [TRANSFER_DATE] 显示日期格式为 1/4/2019 0:45 选择此日期时,显示为 01/04/2019 00:45:08 am 使用 python 脚本读取此列 [TRANSFER_DATE],其中显示日期时间为 01/04/2019 00:45:08

但是,当我尝试将列 [TRANSFER_DATE] 与另一个日期进行比较时,我收到此错误 只能将 .dt 访问器与 datetimelike 一起使用“ ValueError: : "Can only use .dt accessor with datetimelike values" while评估

暗示这些值实际上并未被识别为日期时间值

mask_part_date = data.loc[data['TRANSFER_DATE'].dt.date.astype(str) == '2019-04-12']

【问题讨论】:

    标签: excel python-3.x pandas


    【解决方案1】:

    正如在question 中看到的,对于列中的某些值,Excel 导入可能会静默失败。如果您检查列类型:

    data.dtypes
    

    它可能显示为object 而不是datetime64

    如果您强制您的列具有日期时间值,这可能会解决您的问题:

    data['TRANSFER_DATE'] = pd.to_datetime(data['TRANSFER_DATE'], errors='coerce')
    

    您会发现未转换的值是NaT,您可以手动调试这些值。

    关于您的比较,在将数据帧转换为日期时间对象之后,这可能更有效:

    mask_part_date = data.loc[data['TRANSFER_DATE'] == pd.Timestamp('2019-04-12')]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 2023-02-07
      • 2015-09-05
      • 2014-09-08
      • 2020-08-20
      • 2018-02-17
      相关资源
      最近更新 更多