新聞中心
python中時間序列數(shù)據(jù)的一些處理方式
datetime.timedelta對象代表兩個時間之間的時間差,兩個date或datetime對象相減就可以返回一個timedelta對象。
創(chuàng)新互聯(lián)從2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元諸城做網(wǎng)站,已為上家服務(wù),為諸城各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
利用以下數(shù)據(jù)進行說明:
如果我們發(fā)現(xiàn)時間相關(guān)內(nèi)容的變量為int,float,str等類型,不方便后面的分析,就需要使用該函數(shù)轉(zhuǎn)化為常用的時間變量格式:pandas.to_datetime
轉(zhuǎn)換得到的時間單位如下:
如果時間序列格式不統(tǒng)一,pd.to_datetime()的處理方式:
當(dāng)然,正確的轉(zhuǎn)換是這樣的:
第一步:to_datetime()
第二步:astype(datetime64[D]),astype(datetime64[M])
本例中:
order_dt_diff必須是Timedelta('0 days 00:00:00')格式,可能是序列使用了diff()
或者pct_change()。
前者往往要通過'/np.timedelta'去掉單位days。后者其實沒有單位。
假如我們要統(tǒng)計某共享單車一天內(nèi)不同時間點的用戶使用數(shù)據(jù),例如
還有其他維度的提取,年、月、日、周,參見:
Datetime properties
注意 :.dt的對象必須為pandas.Series,而不可以是Series中的單個元素
新手求教:python 時間格式轉(zhuǎn)換
時間格式轉(zhuǎn)換分為兩種,時間轉(zhuǎn)換為字符串和字符串轉(zhuǎn)換為時間,具體代碼例子如下:
1?import?datetime
2?import?time
3?#?日期轉(zhuǎn)換為字符串,使用strftime()函數(shù)
4?#?time.strftime(format[,?t])
5
6?print?datetime.datetime.now()
7?print?datetime.datetime.now().strftime("%Y-%m-%d
%H:%M:%S")
8?print?datetime.datetime.now().strftime("%b
%d?%Y?%H:%M:%S")
9?print?datetime.datetime.now().strftime("%c
%d?%Y?%H:%M:%S")
10?#?字符串轉(zhuǎn)換為日期,使用strptime()函數(shù)
11?t?=?(2009,?2,?17,?8,?3,?38,?1,?48,?0)
12?t?=?time.mktime(t)
13?print?time.strftime("%b?%d?%Y?%H:%M:%S",time.gmtime(t))
14?print?time.strftime("%Y-%m-%d?%H:%M:%S",time.gmtime(t))
注:格式字符說明:
python中時間日期格式化符號:
%y
兩位數(shù)的年份表示(00-99)
%Y
四位數(shù)的年份表示(000-9999)
%m
月份(01-12)
%d
月內(nèi)中的一天(0-31)
%H
24小時制小時數(shù)(0-23)
%I
12小時制小時數(shù)(01-12)
%M
分鐘數(shù)(00=59)
%S
秒(00-59)
%a
本地簡化星期名稱
%A
本地完整星期名稱
%b
本地簡化的月份名稱
%B
本地完整的月份名稱
%c
本地相應(yīng)的日期表示和時間表示
%j
年內(nèi)的一天(001-366)
%p
本地A.M.或P.M.的等價符
%U
一年中的星期數(shù)(00-53)星期天為星期的開始
%w
星期(0-6),星期天為星期的開始
%W
一年中的星期數(shù)(00-53)星期一為星期的開始
%x
本地相應(yīng)的日期表示
%X
本地相應(yīng)的時間表示
%Z
當(dāng)前時區(qū)的名稱
%%
%號本身
python數(shù)字怎么轉(zhuǎn)變時間?
5位數(shù)日期戳讀取 .mat 文件處理里面數(shù)據(jù)時,發(fā)現(xiàn)里面的日期數(shù)據(jù)全部都是 “5位數(shù)” 數(shù)字,很不解;后來查到可以在excel中通過設(shè)置單元格調(diào)回標(biāo)準(zhǔn)日期格式,如下:選中日期戳,右鍵選擇 “格式化單元格(Format Cells)”選擇需要的日期格式,點擊ok即可通過代碼轉(zhuǎn)成標(biāo)準(zhǔn)日期例如這個DataFrame中的日期,全部都是“日期戳”格式的,但我需要的是人能看懂的“標(biāo)準(zhǔn)日期”;確認起始日期首先需拿一個“日期戳”對應(yīng)的時間(標(biāo)準(zhǔn)日期),減去這個日期戳,得出起始時間。獲取起始時間:2018-05-02 對應(yīng)的日期戳為:43222,接下來通過pandas 的Timedelta()和 to_datetime() 獲取起始時間。可以看到起始日期為“1899-12-30”這樣一來后續(xù)日期戳轉(zhuǎn)標(biāo)準(zhǔn)日期,只需要在 “1899-12-30” 的基礎(chǔ)上加 “日期戳”即可。批量轉(zhuǎn)換首先定義一個函數(shù)用來進行轉(zhuǎn)換:#定義轉(zhuǎn)化日期戳的函數(shù),stamp為日期戳def date(stamp):delta = pd.Timedelta(str(stamp)+'D')real_time = pd.to_datetime('1899-12-30') + deltareturn real_time然后針對DataFrame需要轉(zhuǎn)換的列進行轉(zhuǎn)換即可:
Python獲取當(dāng)前時間前、后一個月的函數(shù)
這需求折騰了我半天..
import time
import datetime as datetime
def late_time(time2):
# 先獲得時間數(shù)組格式的日期
#time2是外部傳入的任意日期
now_time = datetime.datetime.strptime(time2, '%Y-%m-%d')
#如需求是當(dāng)前時間則去掉函數(shù)參數(shù)改寫 ? ? ?為datetime.datetime.now()
threeDayAgo = (now_time - datetime.timedelta(days =30))
# 轉(zhuǎn)換為時間戳
timeStamp =int(time.mktime(threeDayAgo.timetuple()))
# 轉(zhuǎn)換為其他字符串格式
otherStyleTime = threeDayAgo.strftime("%Y-%m-%d")
return otherStyleTime
a = late_time("2019-3-30")
print(a)# 打印2018-02-28
python中,怎么把字符串轉(zhuǎn)換為日期格式
python中要把字符串轉(zhuǎn)換成日期格式需要使用time模塊中的strptime函數(shù),例子如下:
import time
t = time.strptime('2016-05-09 21:09:30', '%y-%m-%d %h:%m:%s')
print(t)執(zhí)行結(jié)果如下:
time.struct_time(tm_year=2016,
tm_mon=5,
tm_mday=9,
tm_hour=21,
tm_min=9,
tm_sec=30,
tm_wday=0,
tm_yday=130,
tm_isdst=-1)
函數(shù)說明:
第一個參數(shù)是要轉(zhuǎn)換成日期格式的字符串,第二個參數(shù)是字符串的格式
函數(shù)官方文檔如下:
help on built-in function strptime in module time:
strptime(...)
strptime(string, format) - struct_time
parse a string to a time tuple according to a format specification.
see the library reference manual for formatting codes (same as
strftime()).
commonly used format codes:
%y year with century as a decimal number.
%m month as a decimal number [01,12].
%d day of the month as a decimal number [01,31].
%h hour (24-hour clock) as a decimal number [00,23].
%m minute as a decimal number [00,59].
%s second as a decimal number [00,61].
%z time zone offset from utc.
%a locale's abbreviated weekday name.
%a locale's full weekday name.
%b locale's abbreviated month name.
%b locale's full month name.
%c locale's appropriate date and time representation.
%i hour (12-hour clock) as a decimal number [01,12].
%p locale's equivalent of either am or pm.
other codes may be available on your platform. see documentation for the c library strftime function.
python時間轉(zhuǎn)換為整數(shù)
最近寫的項目用到了knn模型進行預(yù)測性分析,但是需要把日期型的字段轉(zhuǎn)為整型,換言之,就是時間戳。
將時間轉(zhuǎn)換成時間戳
例如:
將時間2019-4-13 10:02:23轉(zhuǎn)換成時間戳,具體的操作過程為:
利用strptime()函數(shù)將時間轉(zhuǎn)換成時間數(shù)組
利用mktime()函數(shù)將時間數(shù)組轉(zhuǎn)換成時間戳
import time
dt = "2019-4-13 10:02:23"
# 轉(zhuǎn)為時間數(shù)組
timeArray = time.strptime(dt,"%Y-%m-%d %H:%M:%S")
# 轉(zhuǎn)為時間戳
timeStamp = int(time.mktime(timeArray))
print(timeStamp)
網(wǎng)頁標(biāo)題:python日期函數(shù)轉(zhuǎn)換 python數(shù)字轉(zhuǎn)換成日期
轉(zhuǎn)載注明:http://www.ef60e0e.cn/article/hjgcsj.html