我對 geopandas 和 pandas datetime 物件有一些問題;我一直收到錯誤
pandas Invalid field type <class 'pandas._libs.tslibs.timedeltas.Timedelta'>
當我嘗試使用 gpd.to_file() 保存它時,顯然這是 pandas 和 geopandas 日期型別之間的一個已知問題,所以我使用了
df.DATE = df.DATE.apply(lambda x: datetime.datetime.strptime(x, '%Y-%m-%dT%H:%M:%S%z'))
要獲得一個 datetime 物件,我可以在保存結果時進行操作而不會出現上述錯誤。由于這種變化,我按月選擇
months = [4]
for month in months:
df = df[[(pd.DatetimeIndex(df.DATE).month == month)]]
不再起作用,拋出一個值錯誤。
ValueError: Item wrong length 1 instead of 108700.
我嘗試洗掉 pd.DatetimeIndex 但這會引發資料幀系列錯誤
AttributeError: 'Series' object has no attribute 'month'
和
df = df[(df.DATE.month == month)]
給我同樣的錯誤。我知道它轉換為 datetime 物件,因為 print(df.dtype) 顯示 DATE datetime64[ns, UTC] 和
for index, row in df.iterrows():
print(row.DATE.month)
將月份作為整數列印到終端。
在不回傳 pd.Datetime 的情況下,我該如何修復當月的選擇陳述句?
uj5u.com熱心網友回復:
該陳述句df.DATE回傳一個 Series 物件。那沒有.month屬性。系列中的日期確實如此,這就是row.DATE.month有效的原因。嘗試類似:
filter = [x.month == month for x in df.DATE]
df_filtered = df[filter]
在此之前,我不確定您要完成什么,pd.DatetimeIndex(df.DATE).month == month)但類似的修復應該可以解決它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527135.html
標籤:Python熊猫大熊猫
