我是python和pandas的新手,所以謝謝大家提前幫助我。
我住在英國,所以我使用 DD/MM/YYYY 格式,并且我檢查過,我的 PC 的區域在系統中也是 DD/MM/YYYY 格式。
但是,當我寫以下內容時:
def mock_day_of_week():
# return Monday
temp = pd.Timestamp("15/11/2021")
print(temp.day_name())
mock_day_of_week()
def mock_day_of_week1():
# return Monday too
temp = pd.Timestamp("11/15/2021")
print(temp.day_name())
mock_day_of_week1()
不管是 DD/MM/YYYY 還是 MM/DD/YYYY,它們都在星期一回傳,所以這很好。除了 DD/MM/YYYY 也回傳這個:
sys:1:用戶警告:以 DD/MM/YYYY 格式決議“15/11/2021”。提供格式或指定 infer_datetime_format=True 以進行一致的決議。
但是,當我測驗以下功能時:
def mock_day_of_week3():
# should return Sunday for 12th June 2022, but return as Tuesday for 6th December 2022 instead
temp = pd.Timestamp("12/6/2022")
print(temp.day_name())
mock_day_of_week3()
def mock_day_of_week4():
# should return Friday for 6th May 2022 but return as Sunday for 5th June 2022 instead
temp = pd.Timestamp("06/05/2022")
print(temp.day_name())
mock_day_of_week4()
Timestamp 函式開始讀取為 MM/DD/YYYY。
我需要添加到引數中的正確格式是什么,以便它強制時間戳識別 DD/MM/YYYY 格式。
我已經嘗試了建議:
temp = pd.Timestamp("06/05/2022", infer_datetime_format=True)
print(temp.day_name())
但這給出了一個錯誤:
檔案“pandas_libs\tslibs\timestamps.pyx”,第 1248 行,在 pandas._libs.tslibs.timestamps.Timestamp 中。new TypeError: new () got an unexpected keyword argument 'infer_datetime_format'
我很困惑,在此先感謝您提供有關如何解決此問題的任何意見。
uj5u.com熱心網友回復:
我相信最簡單的方法是通過命名引數將它們指定為整數:
>>> pd.Timestamp(day=12, month=6, year=2022)
您還可以使用dayfirstfrompd.to_datetime來消除月份或日期是否在前的歧義:
>>> pd.to_datetime('12/6/2022', dayfirst=True)
最后,您還可以提供format:
pd.to_datetime('12/6/2022', format='%d/%m/%Y')
uj5u.com熱心網友回復:
使用您的時區添加 tz 引數
temp = pd.Timestamp("05/06/2022", tz='Europe/London')
uj5u.com熱心網友回復:
我相信你的問題是:
我需要添加到引數中以強制時間戳識別 DD/MM/YYYY 格式的正確格式是什么?
對此非常明確的一種方法如下:
temp = pd.to_datetime("12/6/2021", format="%d/%m/%Y")
print(temp.month_name())
或者,您可以這樣做:
temp = pd.to_datetime("12/6/2021", dayfirst=True)
print(temp.month_name())
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/491283.html
