[英]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.