python处理excel表格文件|python处理数据分析|实例10:时间转换(格式转为秒数)

import pandas as pd
import re
time_1 = pd.read_excel(r'C:\Users\54512\Desktop\拨打时间转换.xlsx')
"def time_to_format(seconds):
day = int(seconds//86400)
    hour = int(seconds%86400//3600)
    minute = int(seconds%86400%3600//60)
    second = int(seconds%86400%3600%60)
    strformat = '{0}天{1}时{2}分{3}秒'.format(day, hour, minute, second)
    return strformat"
"def format_to_time(strformat):
    tmp = re.findall('^(.*?)天(.*?)时(.*?)分(.*?)秒', strformat)[0]
    day, hour, minute, second = tmp
    seconds = int(day)*86400 + int(hour)*3600 + int(minute)*60 + int(second)
    return seconds"
time_1['拨打时间'] = pd.to_datetime(time_1['拨打时间'])
time_2 = time_1.sort_values(by=['业务员', '拨打时间'], ascending=[True, True]).reset_index(drop=1)
tmp = time_2.groupby('业务员')['拨打时间'].diff()
tmp2 = tmp.apply(lambda x: time_to_format(x.total_seconds()) if pd.notnull(x) else None)
tmp_time_秒数 = tmp2.apply(lambda x: format_to_time(x) if pd.notnull(x) else x)
time_2['秒数'] = tmp_time_秒数
time_2.to_excel(r'C:\Users\54512\Desktop\后一通与前一通的相隔时间.xlsx',index=False)

#把时间的格式改成'{0}天{1}时{2}分{3}秒'

#把(.*?)天(.*?)时(.*?)分(.*?)秒改为秒数显示

# 把‘拨打时间’转成时间格式

# 按'业务员','拨打时间'分组排序(业务员升序,拨打时间升序)

# 拨打时间列做下一项与上一项的差值

# 将差值转换成并转成天时分秒格式

#再转换成秒数

#time_2 表格中新增一行【‘秒数’】,内容就是tmp_time_秒数的数据

#导出数据


任务:将业务员当天的拨打时间做一个差值,检查拨打时间的间隔,由此看出业务员工作有没有偷懒。(此部分是程序员同事帮忙写的,我平时使用都会直接当一个模板来使用的。所以匿名函数内的仔细内容我可能也不会。但结果总体是可以输出的。)

posted on 2022-07-24 19:35  梁必得  阅读(468)  评论(0编辑  收藏  举报

导航