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

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

python時間戳轉換為沒有指定年份的日期時間

python時間戳轉換為沒有指定年份的日期時間

墨色風雨 2022-11-09 16:58:10
我有一個包含一年時間序列數據的 csv 文件,其中時間戳看起來像下面插入的代碼。關于數據的一件事是30 年平均每小時天氣數據,因此沒有指定帶有時間戳的年份。Date01-01T01:00:0001-01T02:00:0001-01T03:00:0001-01T04:00:0001-01T05:00:0001-01T06:00:0001-01T07:00:0001-01T08:00:0001-01T09:00:0001-01T10:00:0001-01T11:00:0001-01T12:00:0001-01T13:00:0001-01T14:00:0001-01T15:00:0001-01T16:00:0001-01T17:00:0001-01T18:00:0001-01T19:00:0001-01T20:00:0001-01T21:00:0001-01T22:00:0001-01T23:00:00我可以很好地讀取 csv 文件:df = pd.read_csv('weather_cleaned.csv', index_col='Date', parse_dates=True)如果我這樣做pd.to_datetime(df)會出錯: ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day,month,year] is missing有人有任何將我的 df 轉換為日期時間的提示嗎?
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

您可以傳遞date_parser參數(檢查文檔),例如


import pandas as pd

from datetime import datetime


df = pd.read_csv('weather_cleaned.csv', index_col='Date', parse_dates=['Date'], 

                  date_parser=lambda x: datetime.strptime(x, '%d-%mT%H:%M:%S'))

print(df.head())

輸出


Empty DataFrame

Columns: []

Index: [1900-01-01 01:00:00, 1900-01-01 02:00:00, 1900-01-01 03:00:00, 1900-01-01 04:00:00, 1900-01-01 05:00:00]

當然你可以定義不同的功能,也許指定不同的年份等等。例如,如果你想要 2020 年而不是 1900 年使用


date_parser=lambda x: datetime.strptime(x, '%d-%mT%H:%M:%S').replace(year=2020)


注意我假設它是日月格式,相應地更改格式字符串。


編輯:更改我的示例以反映日期列應用作索引。


查看完整回答
反對 回復 2022-11-09
?
吃雞游戲

TA貢獻1829條經驗 獲得超7個贊

您可以做的一件事是附加一個默認年份:

 pd.to_datetime('2020-' + df['Date'])


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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