# 数据预处理模块 独立的数据清洗工具,用于在正式分析前准备数据。 ## 功能 - **数据合并**:将多个 Excel/CSV 文件合并为单一 CSV - **时间排序**:按时间列对数据进行排序 - **目录管理**:标准化的原始数据和输出数据目录 ## 目录结构 ``` project/ ├── raw_data/ # 原始数据存放目录 │ ├── remotecontrol/ # 按数据来源分类 │ └── ... ├── cleaned_data/ # 清洗后数据输出目录 │ ├── xxx_merged.csv │ └── xxx_sorted.csv └── data_preprocessing/ # 本模块 ``` ## 使用方法 ### 命令行 ```bash # 初始化目录结构 python -m data_preprocessing.cli init # 合并 Excel 文件 python -m data_preprocessing.cli merge --source raw_data/remotecontrol # 合并并按时间排序 python -m data_preprocessing.cli merge --source raw_data/remotecontrol --sort-by SendTime # 指定输出路径 python -m data_preprocessing.cli merge -s raw_data/remotecontrol -o cleaned_data/my_output.csv # 排序已有 CSV python -m data_preprocessing.cli sort --input some_file.csv --time-col SendTime # 原地排序(覆盖原文件) python -m data_preprocessing.cli sort --input data.csv --inplace ``` ### Python API ```python from data_preprocessing import merge_files, sort_by_time, Config # 合并文件 output_path = merge_files( source_dir="raw_data/remotecontrol", output_file="cleaned_data/merged.csv", pattern="*.xlsx", time_column="SendTime" # 可选:合并后排序 ) # 排序 CSV sorted_path = sort_by_time( input_path="data.csv", output_path="sorted_data.csv", time_column="CreateTime" ) # 自定义配置 config = Config() config.raw_data_dir = "/path/to/raw" config.cleaned_data_dir = "/path/to/cleaned" config.ensure_dirs() ``` ## 配置项 | 配置项 | 默认值 | 说明 | |--------|--------|------| | `raw_data_dir` | `raw_data/` | 原始数据目录 | | `cleaned_data_dir` | `cleaned_data/` | 清洗输出目录 | | `default_time_column` | `SendTime` | 默认时间列名 | | `csv_encoding` | `utf-8-sig` | CSV 编码格式 | ## 注意事项 1. 本模块与 `DataAnalysisAgent` 完全独立,不会相互调用 2. 合并时会自动添加 `_source_file` 列标记数据来源(可用 `--no-source-col` 禁用) 3. Excel 文件会自动合并所有 Sheet 4. 无效时间值在排序时会被放到最后