深入了解Python中的時間處理函數(shù)_第1頁
深入了解Python中的時間處理函數(shù)_第2頁
深入了解Python中的時間處理函數(shù)_第3頁
深入了解Python中的時間處理函數(shù)_第4頁
深入了解Python中的時間處理函數(shù)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第深入了解Python中的時間處理函數(shù)目錄一、datetime模塊介紹1datetime.date類2datetime.datetime類3datetime.timedelta類二、日期轉(zhuǎn)字符三、字符轉(zhuǎn)日期四、數(shù)值轉(zhuǎn)日期五、時間函數(shù)在催收數(shù)據(jù)處理中的應用1讀取數(shù)據(jù)2把催收時間處理成日期格式3取客戶最后一條催收記錄

一、datetime模塊介紹

python中處理時間有個datetime模塊,模塊定義了如下幾個類:

datetime.date:表示日期的類,常用屬性有year、month、day。

datetime.time:表示時間的類,常用屬性有hour、minute、second、microsecond。

datetime.datetime:表示日期時間類。

datetime.timedelta:表示時間間隔類,即兩個時點之間的長度。

datetime.tzinfo:表示時區(qū)的類。

為了大家熟悉上面常用的類,下面介紹一些實例。

1datetime.date類

#datetime.date類

importdatetime

print('1.現(xiàn)在是',datetime.date.today(),'日')

print('2.現(xiàn)在是',datetime.date.today().year,'年')

print('3.現(xiàn)在是',datetime.date.today().month,'月')

print('4.現(xiàn)在是',datetime.date.today().day,'日')

#得到結果:

1.現(xiàn)在是2025-10-31日

2.現(xiàn)在是2025年

3.現(xiàn)在是10月

4.現(xiàn)在是31日

2datetime.datetime類

#datetime.datetime類

importdatetime

print('1.現(xiàn)在是',datetime.datetime.today(),'日')

print('2.現(xiàn)在是',datetime.datetime.today().year,'年')

print('3.現(xiàn)在是',datetime.datetime.today().month,'月')

print('4.現(xiàn)在是',datetime.datetime.today().day,'日')

print('5.現(xiàn)在是',datetime.datetime.today().hour,'時')

print('6.現(xiàn)在是',datetime.datetime.today().minute,'分')

print('7.現(xiàn)在是',datetime.datetime.today().second,'秒')

print('8.現(xiàn)在是',datetime.datetime.today().microsecond,'微秒')

#得到結果:

1.現(xiàn)在是2025-10-3115:55:23.676360日

2.現(xiàn)在是2025年

3.現(xiàn)在是10月

4.現(xiàn)在是31日

5.現(xiàn)在是15時

6.現(xiàn)在是55分

7.現(xiàn)在是23秒

8.現(xiàn)在是677333微秒

3datetime.timedelta類

#datetime.timedelta類

importdatetime

today=datetime.date.today()

yestoday=today+datetime.timedelta(days=-1)

tomorrow=today+datetime.timedelta(days=1)

print('1.今天是',today,'日')

print('2.昨天是',yestoday,'日')

print('3.明天是',tomorrow,'日')

#得到結果:

1.今天是2025-10-31日

2.昨天是2025-10-30日

3.明天是2025-11-01日

二、日期轉(zhuǎn)字符

這一小節(jié)介紹把日期轉(zhuǎn)換成字符,主要用到datetime.datetime.strftime函數(shù)。

#dateTimetostr

date_time_now=datetime.datetime.now()

str_now1=datetime.datetime.strftime(date_time_now,'%Y-%m-%d')

print(date_time_now)

str_now1

#得到結果:

2025-10-3116:20:45.391792

'2025-10-31'

三、字符轉(zhuǎn)日期

??這一小節(jié)介紹把字符轉(zhuǎn)換成日期,主要用到datetime.datetime.strptime函數(shù)。

#strtodate

str_time='2025-10-21'

date_time=datetime.datetime.strptime(str_time,'%Y-%m-%d').date()

print(date_time)

#得到結果:

2025-10-21

四、數(shù)值轉(zhuǎn)日期

這一小節(jié)介紹把數(shù)值轉(zhuǎn)換成日期。從excel數(shù)據(jù)表中讀取時間,如果是2025/10/11這種格式,會轉(zhuǎn)變成相應數(shù)值44480。這時需要轉(zhuǎn)換成對應的日期,具體代碼如下:

#numtodate

fromdatetimeimportdatetime

fromxlrdimportxldate_as_datetime,xldate_as_tuple

num=44480

datetime(*xldate_as_tuple(num,0)).strftime('%Y-%m-%d')

#得到結果:

'2025-10-11'

五、時間函數(shù)在催收數(shù)據(jù)處理中的應用

本小節(jié)是應用前面小節(jié)闡述的函數(shù),處理實際工作中遇到的問題。比如有一批信貸催收數(shù)據(jù),由于一個客戶可能電話沒有接通,導致存在多次撥打的可能。我們想分析客戶沒有還錢的真實原因,所以想取客戶最后一次通話,催收員記錄的客戶逾期原因。這時就需要把數(shù)據(jù)集按合同號和撥打電話的時間排序,取最后一次撥打電話的逾期原因。

1讀取數(shù)據(jù)

首先是讀取數(shù)據(jù),代碼如下:

importpandasaspd

fromxlrdimportopen_workbook

file_name=r'F:\公眾號\43.時間函數(shù)\催記-2025-10-11至2025-10-17.xlsx'

#文件名稱

table=open_workbook(file_name)

#打開文件

sheets_name=table.sheet_names()

#獲取excel中的sheet名

get_sheet1=table.sheet_by_name('Sheet1')

#獲取Sheet1

data=list()

foriinrange(get_each_sheet.nrows):

col_values=get_sheet1.row_values(i,start_colx=0,end_colx=None)

data.append(col_values)

data1=pd.DataFrame(data)

#把Sheet1中的數(shù)據(jù)讀取出來生成數(shù)據(jù)框

data1.columns=data1.iloc[0]

data1=data1.drop(index=0)

#數(shù)據(jù)框列名確定,并刪除第一行

data2=data1[['合同號','姓名','聯(lián)絡類型','聯(lián)絡類型','催收時間','催收內(nèi)容','催收狀態(tài)','委案日期']]

#取數(shù)據(jù)框中的固定列

注:如需本文數(shù)據(jù),可直接在公眾號中回復”催收數(shù)據(jù)時間處理”,即可免費獲取。

得到結果:

2把催收時間處理成日期格式

接著是處理催收時間變成日期格式,代碼如下:

fromdatetimeimportdatetime

fromxlrdimportxldate_as_datetime,xldate_as_tuple

defnum_to_date(num_):

returndatetime(*xldate_as_tuple(num_,0)).strftime('%Y-%m-%d')

data2['催收時間']=data2['催收時間'].apply(num_to_date)

data2.head(2)

得到結果:

3取客戶最后一條催收記錄

最后是對數(shù)據(jù)框按合同號和催收時間進行排序,取最后一條催收記錄,代碼如下:

dat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論