用于自动化分析Excel数据文件,生成一份包含数据完整性报告的Word文档保存到当前工作目录下。其主要功能包括:
- 数据形状分析:输出数据集的样本数量和指标数量。
- 缺失值检查:识别数据中存在缺失值的指标,并输出缺失值的数量。报告中还详细说明了如何计算缺失值。
- 统计量分析:对每个指标计算并展示最大值、最小值、平均数、众数等统计量,并进行正态性检验(Shapiro-Wilk检验),判断数据是否符合正态分布。
- 异常值检查:使用Z-score方法和箱线图方法检测异常值,报告中包括异常值的数量、四分位数、四分位距(IQR)及异常值的范围。同时生成并插入箱线图,以帮助可视化异常值分布。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import zscore, mode, shapiro
from docx import Document
from docx.shared import Inches
import osdef analyze_excel_data(file_path):# 读取Excel文件df = pd.read_excel(file_path)file_title, _ = os.path.splitext(os.path.basename(file_path))file_name = f'{file_title} 数据完整性报告'# 初始化Word文档doc = Document()doc.add_heading(file_name, 0)# 数据的形状num_samples, num_features = df.shapeshape_text = f'数据形状:{num_samples} 个样本,{num_features} 个指标。'print(shape_text)doc.add_paragraph(shape_text)# 缺失值检查missing_info = df.isnull().sum()num_missing = (missing_info > 0).sum()doc.add_heading('缺失值检查', level=1)doc.add_paragraph(f'共有 {num_missing} 个指标存在缺失值。\n')missing_text = '缺失值检查:\n'for column, missing_count in missing_info.items():if missing_count > 0:missing_text += f'