我有一個 csv 檔案,其中有一列包含 ppl 接種疫苗的日期,格式為“YYYY-MM-DD”作為字串。然后,我的目標是將 X 天添加到相應的日期,X 天基于這些人獲得的疫苗。為了向日期添加天數,我必須將字串日期轉換為 iso 日期,因此我需要回圈該列中的每個元素來傳遞這些日期。我對 Python 有點陌生,我不太正確如何處理它。
所以我用pandas讀取并創建了一個資料框,然后我在影像中嘗試如下: df列內容和嘗試
我不知道為什么我會收到這個錯誤,我嘗試了不同的方法來處理它,但無法弄清楚。
謝謝
uj5u.com熱心網友回復:
這是因為值的型別是“str”,而“str”沒有“fromisoformat”方法。我建議您將值的型別轉換為“日期時間”而不是“str”,以便您可以對日期計算進行任何您想做的事情,例如從特定日期計算 X 天。
您可以將值從 'str' 轉換為 'datetime' 并按如下方式執行您想要的操作:
import pandas as pd
import datetime
df_reduzido['vacina_dataAplicacao'] = pd.to_datetime(df_reduzido['vacina_dataAplicacao'] , format='%Y-%m-%d')
df_reduzido['vacina_dataAplicacao'] = df_reduzido['vacina_dataAplicacao'] datetime.datetime.timedelta(days=3)
print(df_reduzido['vacina_dataAplicacao']) # 3 days added
你可以在這里詳細研究如何處理日期時間:https : //docs.python.org/3/library/datetime.html
uj5u.com熱心網友回復:
感謝您對尚根的幫助。只是想指出,出于某種原因,python 回傳了我的錯誤資訊:“'AttributeError: type object 'datetime.datetime' has no attribute 'datetime'”。然后我通過呼叫找到了解決方案
import datetime
from datetime import timedelta, date, datetime
然后使用“ timedelta() ”,像這樣:
df_reduzido['vacina_dataAplicacao'] = ( pd.to_datetime(df_reduzido['vacina_dataAplicacao'] , format='%Y-%m-%d', utc=False) timedelta(days=10) ).dt.date
最后,我().dt.date為了擺脫pd.to_datetime(). 看,我試圖設定utc=False希望這能完成作業,但什么也沒發生。無論如何,我很感激你的幫助。
問題解決了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/341430.html
下一篇:從randint回圈中獲取總和
