cedian.py 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import os.path
  2. import pandas as pd
  3. if __name__ == '__main__':
  4. read_file = r'C:\Users\wzl\Desktop\中广核104测点\12CZYC1.csv'
  5. all_df = pd.read_csv(read_file, encoding='gbk')
  6. df = all_df[['遥测名称', 'Unnamed: 1', '遥测别名']]
  7. df.rename(columns={'Unnamed: 1': '标准化中文'}, inplace=True)
  8. df_2404 = pd.read_csv(r'C:\Users\wzl\Desktop\中广核104测点\2404\2404测点.csv', encoding='utf8')
  9. df_2405 = pd.read_csv(r'C:\Users\wzl\Desktop\中广核104测点\2405\2405测点.csv', encoding='utf8')
  10. df_2404 = df_2404[['遥测ID号', '标准化中文', 'en_name']]
  11. df_2405 = df_2405[['遥测ID号', '标准化中文', 'en_name']]
  12. biaozhunhua_str = """
  13. 舱内温度 机舱内温度 cabin_temperature
  14. 舱外温度 环境温度 outside_cabin_temperature
  15. 齿轮箱油池温度 齿轮箱油温 gearbox_oil_temperature
  16. 齿轮箱中速轴非驱动端轴承温度 齿轮箱中速轴轴承温度 gearboxmedium_speed_shaftbearing_temperature
  17. 发电机定子U相线圈温度 发电机绕组1温度 generator_winding1_temperature
  18. 发电机定子V相线圈温度 发电机绕组2温度 generator_winding2_temperature
  19. 发电机定子W相线圈温度 发电机绕组3温度 generator_winding3_temperature
  20. 发电机非驱动端轴承温度 发电机非驱动端轴承温度 generatornon_drive_end_bearing_temperature
  21. 发电机驱动端轴承温度 发电机驱动端轴承温度 generatordrive_end_bearing_temperature
  22. 发电机转速 发电机转速 generator_speed
  23. 机舱侧向振动(已滤波) 机舱左右振动 side_to_side_vibration_of_the_cabin
  24. 机舱角度 机舱位置 cabin_position
  25. 机舱中轴线与风向夹角 对风角度 yaw_error1
  26. 机舱轴向振动(已滤波) 机舱前后振动 front_back_vibration_of_the_cabin
  27. 主轴转速 风轮转速 rotor_speed
  28. """
  29. biaozhuan_datas = [i.strip().split('\t') for i in biaozhunhua_str.split('\n') if i.strip()]
  30. biaozhun_cn = {}
  31. for i in biaozhuan_datas:
  32. biaozhun_cn[i[0]] = i[1]
  33. df['标准化中文'] = df['标准化中文'].map(biaozhun_cn).fillna(df['标准化中文'])
  34. df_24port = pd.concat([df_2404, df_2405])
  35. df_24port.rename(columns={'遥测ID号': '遥测名称'}, inplace=True)
  36. biaozhun_cn_map = {}
  37. biaozhun_en_map = {}
  38. for k, c, e in zip(df_24port['遥测名称'], df_24port['标准化中文'], df_24port['en_name']):
  39. biaozhun_cn_map[k] = c
  40. biaozhun_en_map[c] = e
  41. df['标准化中文'] = df['遥测名称'].map(biaozhun_cn_map).fillna(df['标准化中文'])
  42. df['en_name'] = df['标准化中文'].map(biaozhun_en_map)
  43. df.dropna(subset='标准化中文', inplace=True)
  44. df.dropna(subset='遥测别名', inplace=True)
  45. df['场站'] = df['遥测别名'].apply(lambda x: x.split('.')[0])
  46. df['风机号'] = df['遥测别名'].apply(lambda x: x.split('.')[2])
  47. df['测点'] = df['遥测别名'].apply(lambda x: '.'.join(x.split('.')[3:]))
  48. changzhan_map = {
  49. 'FFFD': '富风',
  50. 'MJLFD': '马家梁',
  51. 'PLPFD': '坡底',
  52. 'SLRY': '石楼',
  53. 'SSLF20219': '贺家沟',
  54. 'SXGJ': '古交',
  55. 'SXRC': '芮城',
  56. 'SXYX': '盂县',
  57. 'SXYY': '右玉',
  58. 'YCPL': '平陆',
  59. 'YNJS': '阳曲',
  60. 'YQXP': '西潘'
  61. }
  62. port_map = {
  63. '富风': 2405,
  64. '马家梁': 2405,
  65. '坡底': 2405,
  66. '石楼': 2404,
  67. '贺家沟': 2405,
  68. '古交': 2404,
  69. '芮城': 2404,
  70. '盂县': 2404,
  71. '右玉': 2404,
  72. '平陆': 2404,
  73. '阳曲': 2405,
  74. '西潘': 2405
  75. }
  76. df['场站'] = df['场站'].map(changzhan_map)
  77. df['端口'] = df['场站'].map(port_map)
  78. df = df[~((df['场站'] == '马家梁') &
  79. (df['遥测别名'].str.contains('WNAC.TemNacelleCab'))
  80. & (df['风机号'].isin(['WTG' + str(i).zfill(3) for i in range(26, 50)])))]
  81. df = df[~((df['场站'] == '盂县') &
  82. (df['遥测别名'].str.contains('WNAC.WindDirectionInstant'))
  83. & (df['风机号'].isin(['WTG' + str(i).zfill(3) for i in range(1, 57)])))]
  84. min_table_path = r'C:\Users\wzl\Desktop\中广核104测点\分钟级表-字段.csv'
  85. min_df = pd.read_csv(min_table_path, encoding='gbk', usecols=['遥测ID', '历史采样表名', '历史采样域名'])
  86. min_df['遥测ID'] = min_df['遥测ID'].apply(lambda x: x.replace('遥测定义表 ', '').replace('遥测值', '').strip())
  87. min_df.rename(columns={'遥测ID': '遥测名称'}, inplace=True)
  88. df = df.merge(min_df, on='遥测名称', how='left')
  89. df.to_excel('最终测点配置.xlsx', index=False)
  90. wind_names = df['场站'].unique()
  91. for wind_name in wind_names:
  92. now_df = df[df['场站'] == wind_name]
  93. port = now_df['端口'].unique()[0]
  94. os.makedirs(str(port), exist_ok=True)
  95. now_df.sort_values(by=['风机号', '测点'], inplace=True)
  96. now_df.to_csv(os.path.join(str(port), wind_name + '.csv'))