2024-02-04 21:36:00 +08:00
|
|
|
|
import socket
|
2024-02-20 09:20:41 +08:00
|
|
|
|
import random
|
|
|
|
|
import time
|
2024-02-26 22:06:50 +08:00
|
|
|
|
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')
|
2024-02-04 21:36:00 +08:00
|
|
|
|
|
|
|
|
|
# 创建一个socket:
|
|
|
|
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
|
|
|
# 建立连接:
|
|
|
|
|
s.connect(('localhost', 9996))
|
|
|
|
|
while True:
|
2024-02-26 22:06:50 +08:00
|
|
|
|
for i in data:
|
|
|
|
|
for j in i:
|
|
|
|
|
try:
|
|
|
|
|
time.sleep(0.5)
|
|
|
|
|
# 发送数据:
|
|
|
|
|
s.send((str(j)).encode())
|
|
|
|
|
except KeyboardInterrupt:
|
2024-02-04 21:36:00 +08:00
|
|
|
|
break
|
|
|
|
|
# 关闭连接
|
|
|
|
|
s.close()
|