import socket import random import time import pandas as pd import numpy as np def data_clean(data, is_column=False): """_summary_ Args: data (_type_): csv数据 is_column (bool, optional): 清除含有NaN数据的列. Defaults to False.即清除含有NaN数据的行 Returns: _type_: 清洗过的数据 """ if not is_column: data = data.dropna(axis=0) return data else: data = data.dropna(axis=1) return data def data_load(data_path, is_column=False): """ 数据加载 data_path: 数据路径 is_column: 是否是列数据 return:X,Y """ # 读取csv文件 df = pd.read_csv(data_path) # 进行数据清洗 data_clean(df, is_column) df = df[df['output'] == 1] # 去除第一列 df = df.drop(df.columns[0], axis=1) # 初始化X,Y X= [] # 遍历DataFrame的每一行 for index, row in df.iterrows(): # 获取前127个数据项 X.append(row.iloc[0:129]) return np.array(X) # 输入需要发送的数据 data = data_load('data\PowerQualityDistributionDataset1.csv') # 创建一个socket: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 建立连接: s.connect(('localhost', 9996)) while True: for i in data: for j in i: try: time.sleep(0.5) # 发送数据: s.send((str(j)).encode()) except KeyboardInterrupt: break # 关闭连接 s.close()