load.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import os
  2. import pandas as pd
  3. import yaml
  4. # =============================
  5. # 配置加载器
  6. # =============================
  7. class UFConfigLoader:
  8. def __init__(self, config_path="config/uf_analyze_config.yaml"):
  9. with open(config_path, "r", encoding="utf-8") as f:
  10. self.cfg = yaml.safe_load(f)
  11. @property
  12. def uf(self):
  13. return self.cfg["UF"]
  14. @property
  15. def params(self):
  16. return self.cfg["Params"]
  17. @property
  18. def paths(self):
  19. return self.cfg["Paths"]
  20. # =============================
  21. # 数据加载器
  22. # =============================
  23. class UFDataLoader:
  24. def __init__(self, data_path: str):
  25. self.data_path = data_path
  26. def load_all_csv(self) -> pd.DataFrame:
  27. """读取目录下所有 CSV 并合并成一个 DataFrame"""
  28. files = [f for f in os.listdir(self.data_path) if f.endswith(".csv")]
  29. dfs = [pd.read_csv(os.path.join(self.data_path, f), parse_dates=["time"]) for f in files]
  30. return pd.concat(dfs, ignore_index=True)
  31. def load_single_csv(self, file_name: str) -> pd.DataFrame:
  32. """读取单个 CSV"""
  33. return pd.read_csv(os.path.join(self.data_path, file_name), parse_dates=["time"])