实现功能:

求两个时间序列的时间差值

输入:excel文件,含有两列时间格式的数据,row[13]和row[20],例如2008-4-21,1988-01-01

输出:这两列时间数据作差,求相隔的月数,例如243(个月),写入到row[21]

实现代码:

1

from xlutils.copy import copy

2

import xlrd

3

import datetime

4

from xlrd import xldate_as_datetime

5

6

def time_subtraction(file):

7

workbook = xlrd.open_workbook(file)

8

worksheet=workbook.sheet_by_index(0)

9

10

new_workbook = copy(workbook)

11

new_worksheet = new_workbook.get_sheet(0)

12

13

nrow=worksheet.nrows

14

15

for i in range(0,nrow):

16

if i==0:

17

new_worksheet.write(i, 21, '病程')

18

else:

19

row= worksheet.row_values(i)

20

if row[13]!='' and row[20]!='':

21

d1=xldate_as_datetime(row[13],0).strftime('%Y%m')

22

d2=xldate_as_datetime(row[20],0).strftime('%Y%m')

23

print(d1,d2)

24

v_year_end = datetime.datetime.strptime(d1, '%Y%m').year

25

v_month_end = datetime.datetime.strptime(d1, '%Y%m').month

26

v_year_start = datetime.datetime.strptime(d2, '%Y%m').year

27

v_month_start = datetime.datetime.strptime(d2, '%Y%m').month

28

interval = (v_year_end - v_year_start) * 12 \

29

(v_month_end - v_month_start)

30

print('时间差(月数):%s'%interval)

31

new_worksheet.write(i, 21, interval)

32

else:

33

new_worksheet.write(i, 21, 'null')

34

new_workbook.save("F:\数据杂坛\\result\时间差.xls")

35

36

if __name__=="__main__":

37

time_subtraction("F:\数据杂坛\data\患者按地区研究信息_2231 .xls")

实现效果:

python多维时间序列分类:python实现求两个时间序列的时间差值(1)

喜欢记得点赞,在看,加关注(V订阅号:数据杂坛),将持续更新!

,