栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

实现功能:

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

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

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

实现代码:

from xlutils.copy import copy
import xlrd
import datetime
from xlrd import 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 i in 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订阅号:数据杂坛),将持续更新!

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870880.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号