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

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

無法轉換此列的數據時間(對象到時間)

無法轉換此列的數據時間(對象到時間)

眼眸繁星 2022-08-11 17:48:51
我有一個如下數據框數據類型    usr_id  year0   t961    00:50:03.1580001   t964    03:25:572   t335    00:55:003   t829    00:04:25.714000usr_id    objectyear      objectdtype: object我想將年份列數據類型轉換為日期時間。我使用了下面的代碼。timefmt = "%H:%M"test['year'] = pd.to_datetime(    test['year'], format=timefmt, errors='coerce').dt.time我得到低于輸出    usr_id  year0   t961    NaT1   t964    NaT2   t335    NaT3   t829    NaT如何將此列的數據時間(對象轉換為日期時間)?我怎樣才能放下秒和微秒?預期輸出    usr_id   year0   t961    00:501   t964    03:252   t335    00:553   t829    00:04
查看完整描述

2 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

將to_datetime與 Series.dt.strftime 一起使用:


timefmt = "%H:%M"

test['year'] = pd.to_datetime(test['year'], errors='coerce').dt.strftime(timefmt)


print (test)

  usr_id   year

0   t961  00:50

1   t964  03:25

2   t335  00:55

3   t829  00:04

或者,您可以使用 Series.str.rsplit with 按最后一個拆分,并通過索引選擇第一個列表:n=1:


test['year'] = test['year'].str.rsplit(':', n=1).str[0]

print (test)

  usr_id   year

0   t961  00:50

1   t964  03:25

2   t335  00:55

3   t829  00:04

或通過@Akira解決方案:


test['year'] = test['year'].astype(str).str[:5] 


查看完整回答
反對 回復 2022-08-11
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

由于列中當前沒有實際日期,因此您需要設置默認日期。然后,您可以將格式傳遞給 pandas 函數。yearto_datetime

這可以在這樣的單行中完成:

test['year'] = pd.to_datetime(test['year'].apply(lambda x: '1900-01-01 '+ x),format='%Y-%m-%d %H:%M:%S')


查看完整回答
反對 回復 2022-08-11
  • 2 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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