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

时间:2021-07-24 04:17:42

标签: pandas dataframe timestamp

这是datasetDataset的一部分

<块引用>
  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
    24866 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.975000+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:39: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
    47099 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.94
    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)]
`

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

为什么我会收到此错误?

1 个答案:

答案 0 :(得分:1)

试试:

在比较中使用 t2 代替 t2.tz_localize('utc')

data[(data["Time Stamp"] > t1) & (data["Time Stamp"] < t2.tz_localize('utc'))]

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

t2=t1.normalize() + pd.DateOffset(months = 6)