簡體   English   中英

如何將 int64 轉換為日期時間?

[英]How to convert an int64 into a datetime?

我正在嘗試將列 Year (type: int64) 轉換為日期類型,以便我可以使用 Groupby 函數按十年分組。

我正在使用以下代碼來轉換數據類型:

import datetime as dt
crime["Date"]=pd.TimedeltaIndex(crime["Year"], unit='d')+dt.datetime(1960,1,1)
crime[["Year","Date"]].head(10)

輸出截圖

它返回給我的日期不正確 - 它沒有從正確的年份開始,而且這一天按行增加。

我希望年份從 1960 年開始,每一行年份增加 1。

我嘗試用unit='y'替換上面代碼中的unit='d' ,得到以下結果:

Value Error: Units 'M' and 'Y' are no longer supported, as they do not represent unambiguous timedelta value durations. 

我認為@kate 的答案正是您想要的。 我在那個人出現之前寫了我的答案。 我認為我的答案可能仍然值得解釋為什么不支持unit='y'以及為什么unit='d'也不適合您...

我不認為這是正確的:

TimedeltaIndex(crime["Year"], unit='d')

因為我希望這將您的年份解釋為天數。 如果你不能使用unit='y' ,那么也許有一個很好的理由。 也許那是因為年並不總是具有相同的天數,因此指定年數在天數方面是不明確的。 您必須將任何年份數添加到實際年份中才能使其准確無誤。

這同樣適用於數月,更是如此,因為數月有多種天數,因此您可能不知道以月為單位的 timedelta 真正意味着什么。

我將通過以下方式添加該列:

crime['Date'] = crime['Year'].map(lambda x: dt.datetime(1960 + x,1,1))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM