我還有一個總結專欄的問題(Python - Pandas)
我有一個資料框“新”,日期為 5 天。“日期”列的型別為 datetime64[ns]。我嘗試按日期過濾資料框,例如“2021-10-10 和 2021-10-15 之間的所有值”或“2021-10-14 之后的所有值”等。無論我嘗試什么,我都會收到錯誤訊息。從...開始:
mask = (new['Date'] > '2021-10-10') & (df['Date'] <= '2021-10-15')
我得到:
TypeError: '<=' not supported between instances of 'date time.date' and 'str'
出現此錯誤后,我嘗試轉換切片,遵循以下建議“問題是您想使用字串 '2017-07-07' 進行切片,而您的索引型別為日期時間.日期。您的切片也應該是這種型別。您可以通過如下定義開始日期和結束日期來實作此目的:
import pandas as pd
startdate = pd. to_datetime("2017-7-7").date()
enddate = pd. to_datetime("2017-7-10").date()
df.loc[startdate:enddate]
(我當然洗掉了空格)但現在我得到了
TypeError: '<' not supported between instances of 'int' and 'date time.date'
我只想按不同的時間段對我的資料框進行排序和過濾。謝謝你的幫助
uj5u.com熱心網友回復:
只是為了確保所有內容都采用相同的格式,使用pd.to_datetime()并使用infer_datetime_format=True有助于格式化并加速功能:
df['Date'] = pd.to_datetime(df['Date'],infer_datetime_format=True)
df = df[(df['Date'] > pd.to_datetime('2021-10-10')) & (df['Date'] <= pd.to_datetime('2021-10-15'))]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/370795.html
