InvalidIndexError: Reindexing only valid with uniquely valued Index objects when using pd.to_datetime on non NAN values

InvalidIndexError: Reindexing only valid with uniquely valued Index objects when using pd.to_datetime on non NAN values

我有一个 df,其中包含订单数据:

date        order_id        cost        category
2021-07-12  10              50          A
2021-07-12  10              57          B
2021-08-15  15              76          C
2022-01-11  5               67          C

实际上我有大约 40 列,当我尝试 运行:

时出现错误
df.date = pd.to_datetime(df.date)

InvalidIndexError: Reindexing only valid with uniquely valued Index objects

我读过很多答案,大多数人说这与 NaN 值或重复列有关。所以我检查了:

sum(df.date.isna())
# 0

len(df.columns) == len(set(df.columns))
# True

所以我没有 'NaN' 值,也没有重复项。另一件奇怪的事情是,如果我关闭 VSCode 并重新启动所有内容,有时同一数据集不会出现此错误,那么是否存在某种错误?这次我多次尝试重新启动一切,但错误仍然存​​在。

我检查了这个答案和其他答案:

并尝试了 df = df.reset_index() 但没有帮助。所以我被卡住了,无法找到这个错误的原因,这看起来真的很奇怪。

更新

我试过df['date'] = pd.to_datetime(df['date']),returns同样的错误。

我检查了以下内容:

{type(x) for x in df.date}

# {datetime.date, pandas._libs.tslibs.timestamps.Timestamp, str}

这可能是问题所在。

您可以将值转换为字符串:

df['date'] = pd.to_datetime(df['date'].astype(str))