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 月及之后的月份里,常规报表的开发数量有所下降,说明了上半年对于上游数据规范、集成的重要性,而我在下半年也的确有更多的精力去集中于业务分析等重点工作了,