年终,使用 Python 汇总各月开发的报表数量

2021,已经过去了。在整理当年工作输出时,想量化下当年开发的报表数量,以及看下上半年集成数据后,报表开发的工作占比是否下降。
想了下,可以用项目组下个人目录下的各月报表数量,来量化下上述情况。
思路很简单,用 Python 的 os / pathlib 库,拿到个人目录下的文件路径及其创建的时间,再按月汇总计数即可,代码如下:

import os 
from datetime import datetime

import pandas as pd

# 输入参数
FILE_PATH = '你的个人目录绝对路径'    # str
FILE_SUFFIX = ['.cpt', '.frm']    # str / list 文件的后缀,由于此处统计帆软报表数,因此用帆软报表的文件后缀

def get_file_time_df(file_path, file_suffix):
    """
    获取指定目录下,所有指定后缀形式文件的列表(包含文件名、创建/修改时间),并以 DataFrame 形式输出
    
    输入:
    file_path    --    指定目录(str)
    file_suffix       --    后缀形式(str / list)
    
    返回:
    df    --    包含目标文件信息的数据框
    """
    file_list = []   # 初始化:指定目录下 所有指定后缀形式文件的列表
    df_list = []     # 初始化:存放文件名与对应时间的列表
    
    # 获取指定目录下,所有指定后缀形式文件的列表
    for root, dirs, files in os.walk(file_path):
        file_list.extend([root + '/' + str(i) for i in files])
    file_list = [i for i in file_list if os.path.splitext(i)[1] in file_suffix]
    
    # 获取各文件的创建/修改时间组成的数据框
    for index, file in enumerate(file_list):
        # id, 创建时间, 修改时间
        df_list.append([index+1, file, datetime.fromtimestamp(os.path.getctime(file)).strftime('%Y-%m-%d %H:%M:%S'), datetime.fromtimestamp(os.path.getmtime(file)).strftime('%Y-%m-%d %H:%M:%S')])

    # 输出由文件路径、创建时间、修改时间组成的数据框
    df = pd.DataFrame(df_list, columns=['id', 'file_path', 'create_time', 'modify_time'])
    df['create_month'] = df['create_time'].apply(lambda x: x[: 4] + x[5: 7])
    df['modify_month'] = df['modify_time'].apply(lambda x: x[: 4] + x[5: 7])
    return df

file_path = FILE_PATH
file_suffix = FILE_SUFFIX
df = get_file_time_df(file_path, file_suffix)

res1 = df.groupby('create_month').size().reset_index().rename(columns={'create_month': '年月', 0: '开发报表数'})
res2 = df.groupby('modify_month').size().reset_index().rename(columns={'modify_month': '年月', 0: '维护报表数'})
res = pd.merge(res1, res2, on='年月')
res = res[(res['年月'] >= '202101') & (res['年月'] < '202201')]
import plotly.express as px

fig = px.line(res, x="年月", y="开发报表数", markers=True)
fig.show()

在这里插入图片描述
上图清晰的展示了各月输出的报表数量。此外,可以看到,在 8 月及之后的月份里,常规报表的开发数量有所下降,说明了上半年对于上游数据规范、集成的重要性,而我在下半年也的确有更多的精力去集中于业务分析等重点工作了,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值