fs-lawrisk/tools/show_trinity_stats.py

73 lines
2.4 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
读取并显示三位一体对比表的统计信息
"""
import pandas as pd
from collections import Counter
def main():
# 读取Excel文件
df = pd.read_excel("许可事项三位一体对比表_v2.xlsx")
print("="*80)
print("许可事项三位一体对比表 - 统计信息")
print("="*80)
print(f"\n总事项数量: {len(df)}")
# 统计各列的勾选情况
print(f"\n客户提供的事项: {(df['客户提供'] == '').sum()}")
print(f"已接收的事项: {(df['已接收'] == '').sum()}")
print(f"已入库的事项: {(df['已入库'] == '').sum()}")
# 统计状态分布
print("\n状态分布:")
status_counts = df['状态说明'].value_counts()
for status, count in status_counts.items():
print(f" {status}: {count}")
# 显示需要关注的事项
print("\n" + "="*80)
print("需要关注的事项")
print("="*80)
# 待入库的事项
to_import = df[df['状态说明'] == '待入库']
if len(to_import) > 0:
print(f"\n【待入库】({len(to_import)} 项):")
for idx, row in to_import.head(15).iterrows():
print(f" - {row['事项名称']}")
if len(to_import) > 15:
print(f" ... 还有 {len(to_import) - 15}")
# 缺少文件和数据的事项
missing_all = df[df['状态说明'] == '缺少文件和数据']
if len(missing_all) > 0:
print(f"\n【缺少文件和数据】({len(missing_all)} 项):")
for idx, row in missing_all.head(15).iterrows():
print(f" - {row['事项名称']}")
if len(missing_all) > 15:
print(f" ... 还有 {len(missing_all) - 15}")
# 缺少源文件的事项
missing_source = df[df['状态说明'] == '缺少源文件']
if len(missing_source) > 0:
print(f"\n【缺少源文件】({len(missing_source)} 项):")
for idx, row in missing_source.head(15).iterrows():
print(f" - {row['事项名称']}")
if len(missing_source) > 15:
print(f" ... 还有 {len(missing_source) - 15}")
# 完整的事项
complete = df[df['状态说明'] == '完整(三方都有)']
print(f"\n【完整(三方都有)】({len(complete)} 项)")
print("\n" + "="*80)
print("对比表已保存到: 许可事项三位一体对比表_v2.xlsx")
print("="*80)
if __name__ == "__main__":
main()