csvFileUtil.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import pandas as pd
  2. class CSVFileUtil:
  3. def __init__(self, filepath):
  4. """
  5. 初始化CSV工具类
  6. :param filepath: CSV文件的路径
  7. """
  8. self.filepath = filepath
  9. def read_csv(self):
  10. """
  11. 读取CSV文件
  12. :return: 返回DataFrame对象
  13. """
  14. return pd.read_csv(self.filepath)
  15. def read_csv_columns(self,useColumns):
  16. """
  17. 读取CSV文件
  18. :return: 返回DataFrame对象
  19. """
  20. return pd.read_csv(self.filepath,usecols=useColumns)
  21. def write_csv(self, data, dest_path):
  22. """
  23. 将数据写入CSV文件
  24. :param data: DataFrame对象或可转换为DataFrame的数据
  25. :param dest_path: 保存CSV文件的路径
  26. """
  27. if not isinstance(data, pd.DataFrame):
  28. data = pd.DataFrame(data)
  29. data.to_csv(dest_path, index=False)
  30. def select_and_save_columns(self, columns, dest_path):
  31. """
  32. 选取指定的列并保存为新的CSV文件
  33. :param columns: 要选取的列名列表
  34. :param dest_path: 保存新CSV文件的路径
  35. """
  36. df = self.read_csv_columns(columns)
  37. self.write_csv(df, dest_path)
  38. # 使用示例
  39. if __name__ == "__main__":
  40. filepath = '/path/to/your/original.csv' # 替换为你的CSV文件路径
  41. dest_path = '/path/to/your/selected_columns.csv' # 替换为你想保存选取列后的CSV文件路径
  42. columns = ['时间','iTempOutdoor_1sec','iTempNacelle_1sec','iGenPower','iRotorSpeedPDM','iGenSpeed','iWindSpeed_real',
  43. 'iPitchAngle1','iPitchAngle2','iPitchAngle3','iNacellePositionTotal','iwindDirection','iVaneDiiection',
  44. 'iActivePoweiSetPointValue','iReactivePower','iKWhThisDay_h','iVibrationY','iVibrationZ','iTemp1GearOil_1sec',
  45. 'iTempRotorBearA_1sec','iTempGearBearNDE_1sec','iTempGearBearDE_1sec','iTempGenBearDE_1sec','iTempGenBearNDE_1sec',
  46. 'iTempGenStatorU_1sec','iTempHub_1sec','iTempCntr_1sec','WT_Runcode','WT_Faultcode','iTempRotorBearA_1sec'] # 替换为你想选取的列名
  47. tool = CSVFileUtil(filepath)
  48. tool.select_and_save_columns(columns, dest_path)