我有一個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:重新索引僅對具有唯一值的索引物件有效
我已經閱讀了很多答案,其中大多數人說這與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'])回傳相同的錯誤。
我檢查了以下內容:
{type(x) for x in df.date}
# {datetime.date, pandas._libs.tslibs.timestamps.Timestamp, str}
這可能是問題所在。
uj5u.com熱心網友回復:
您可以將值轉換為字串:
df['date'] = pd.to_datetime(df['date'].astype(str))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/421091.html
標籤:
上一篇:合并第一行的單元格
