dtype=datetime64[ns, UTC] 和时间戳之间的比较无效

Anu*_*leo 3 timestamp dataframe pandas

这是数据集数据集的一部分

  1. 订购数量 时间戳 药品名称 实际价格
    14162 3 2020-10-17 10:06:33.790000+00:00 27699 263.82
    15747 2 2020-10-28 09:14:46.690000+00:00 27699 175.88 24 866 2
    2020-12- 27 14:16:26.259000+00:00 27699 175.88
    25962 2 2021-01-03 18:35:04.337000+00:00 27699 175.88 29188
    2 2021-01-28 08:17:40.975 000+00:00 27699 175.88
    29565 2 2021-02-02 04:15:58.496000+00:00 27699 175.88
    30863 2 2021-02-09 07:19:44.897000+00:00 27699 175.88
    33931 2 2021-03-02 03:3 9:52.087000+00:00 27699 175.88
    35537 2 2021-03-13 15:19:58.131000+00:00 27699 175.88 37429
    1 2021-03-27 05:15:31.772000+00:00 27699 87.94
    470 99 1 2021-05-03 07:16:10.483000 +00:00 27699 87.94
    49135 2 2021-05-09 08:03:35.300000+00:00 27699 175.88
    66057 1 2021-07-07 07:50:21.414000+00:00 27699 87.9 4 67937 1 2021-07-13
    06 :44:20.875000+00:00 27699 87.94

`

  import pandas as pd
  data = pd.read_csv("data.csv")
  data["Time Stamp"] = pd.to_datetime(data["Time Stamp"])
  t1 = pd.Timestamp("2020-06-01 00:00:00.054000+00:00")
  t2 = t1.date() + pd.DateOffset(months = 6)
  data[(data["Time Stamp"] > t1) & (data["Time Stamp"] < t2)]
`
Run Code Online (Sandbox Code Playgroud)

TypeError:dtype=datetime64[ns,UTC] 和时间戳之间的比较无效

为什么我会收到此错误?

Anu*_*bas 8

尝试:

而不是t2在比较中使用t2.tz_localize('utc')

data[(data["Time Stamp"] > t1) & (data["Time Stamp"] < t2.tz_localize('utc'))]
Run Code Online (Sandbox Code Playgroud)

或者

使用normalize()方法代替date()方法:

t2=t1.normalize() + pd.DateOffset(months = 6)
Run Code Online (Sandbox Code Playgroud)