python实现求两个时间序列的时间差值

实现功能:

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

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

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

实现代码:

from xlutils.copyimport copy

import xlrd

import datetime

from xlrdimport xldate_as_datetime

def time_subtraction(file):

workbook = xlrd.open_workbook(file)

worksheet=workbook.sheet_by_index(0)

new_workbook = copy(workbook)

new_worksheet = new_workbook.get_sheet(0)

nrow=worksheet.nrows

for iin range(0,nrow):

if i==0:

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

else:

row= worksheet.row_values(i)

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

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

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

print(d1,d2)

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

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

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

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

interval = (v_year_end - v_year_start) *12 + \

(v_month_end - v_month_start)

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

new_worksheet.write(i, 21, interval)

else:

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

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

if __name__=="__main__":

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


实现效果:

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

你可能感兴趣的:(python实现求两个时间序列的时间差值)