亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

時間數據看似匹配,但與指定的格式不匹配

時間數據看似匹配,但與指定的格式不匹配

牛魔王的故事 2023-08-22 17:41:40
我在 pandas 中有一個數據框,它有兩個日期列:>>>ID  name    start        end  0  12  Tik     1/6/2020    None1  32  Tak     12/31/2019  None2  45  Tek     9/1/2019   1/30/20203  78  Tok     9/1/2019   1/29/2020我正在嘗試將這些日期轉換為日期時間,采用 Ymd 格式,例如 12/31/2019 將是 2019-12-31 :df[['start','end']] =df[['start','end']].apply(pd.to_datetime, format=''%Y-%m-%d'')但每當我運行這個時,我都會收到錯誤:ValueError:時間數據 1/6/2020 與指定的格式不匹配我嘗試將格式指定為給定日期(例如(dmY):df[['start','end']] =df[['start','end']].apply(pd.to_datetime, format=''%d-%m-%Y'')>>>ValueError: time data '1/6/2020' does not match format '%d-%m-%Y' (match)我試圖按照這里第一個答案中的建議來打破它:How to Change the datetime format in pandas and to first conver to datetime and then use strftime 但在第一行我收到錯誤,需要指定格式。我找不到發生這種情況的任何原因,也許是因為日期和月份沒有兩位數?我的最終目標是將這些日期列轉換為 %Y-%m-%d 格式
查看完整描述

1 回答

?
呼如林

TA貢獻1798條經驗 獲得超3個贊

  • 問題似乎是在格式周圍使用了兩組引號

    • ''...''

  • 參數format指定pandas.to_datetime列的當前格式,而不是所需的格式。

    • 這些日期的格式是'%m/%d/%Y'

import pandas as pd


# setup the dataframe

df = pd.DataFrame({'ID': [12, 32, 45, 78], 'name': ['Tik', 'Tak', 'Tek', 'Tok'], 'start': ['1/6/2020', '12/31/2019', '9/1/2019', '9/1/2019'], 'end': [None, None, '1/30/2020', '1/29/2020']})


# convert to datetime

df[['start','end']] = df[['start','end']].apply(pd.to_datetime, format='%m/%d/%Y')


# display(df)

? ?ID name? ? ? start? ? ? ? end

0? 12? Tik 2020-01-06? ? ? ? NaT

1? 32? Tak 2019-12-31? ? ? ? NaT

2? 45? Tek 2019-09-01 2020-01-30

3? 78? Tok 2019-09-01 2020-01-29


查看完整回答
反對 回復 2023-08-22
  • 1 回答
  • 0 關注
  • 237 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號