数据分析 设备一个月以来的参数变化

1数据预处理

import pandas as pd
import glob
import os

# 读取所有CSV文件并合并为一个DataFrame
path = 'path_to_your_csv_files/'  # CSV文件的文件夹路径
all_files = glob.glob(os.path.join(path, "*.csv"))

df_list = []
for file in all_files:
    df = pd.read_csv(file)
    df_list.append(df)

# 合并所有DataFrame
data = pd.concat(df_list, ignore_index=True)

# 将保存时间列转换为日期时间格式
data['保存时间'] = pd.to_datetime(data['保存时间'])

# 检查并处理缺失值(这里以删除含缺失值的行为例)
data = data.dropna()

# 检查数据类型是否正确
print(data.dtypes)

2数据探索性分析(EDA)

#数据探索性分析
import plotly.io as pio
import plotly.graph_objs as go
from sklearn.preprocessing import MinMaxScaler
import matplotlib.pyplot as plt
# 设置字体为 SimHei (黑体),你也可以使用其他已安装的中文字体
plt.rcParams['font.family'] = ['SimHei']

# 解决负号 '-' 显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
print(data.describe())

#时间序列分析,展示主轴电机实时转速随时间变化

#选择需要分析的变量
variables_to_analyze = ['主轴电机实时转速','主轴电机实时电流','腔体压力','喂料电机实时转速','喂料电机实时电流','循环泵口压力','出料压力']

#创建一个Plotly图表图像
fig = go.Figure()
for variable in variables_to_analyze:

    fig.add_trace(go.Scatter(x=data['保存时间'],y=data[variable],mode='lines',name=variable))
#设置标题和标签
fig.update_layout(title='设备参数在一个月内的曲线变化图',xaxis_title='时间',yaxis_title='参数值',hovermode='x unified')
pio.show(fig)
# plt.figure(figsize=(10,6))
# plt.plot(data['保存时间'],data['主轴电机实时转速'],label='主轴电机实时转速')
# plt.xlabel('时间')
# plt.ylabel('转速')
# plt.title('主轴电机转速随时间的变化')
# plt.legend()
# plt.show()

#相关性分析
corr_matrix = data.corr()
print(corr_matrix)

3数据可视化

import seaborn as sns

# 热力图展示参数之间的相关性
plt.figure(figsize=(12, 10))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('参数相关性热力图')
plt.show()

# 散点图展示主轴电机实时转速与主轴电机实时电流的关系
plt.figure(figsize=(8, 6))
sns.scatterplot(x='主轴电机实时转速', y='主轴电机实时电流', data=data)
plt.xlabel('主轴电机实时转速')
plt.ylabel('主轴电机实时电流')
plt.title('主轴电机实时转速与主轴电机实时电流的关系')
plt.show()

4特征工程

# 例如构造一个新的特征:转速与电流的比率
data['转速电流比'] = data['主轴电机实时转速'] / data['主轴电机实时电流']

# 选择重要特征,作为后续分析或建模的输入
features = ['主轴电机设定转速', '主轴电机实时转速', '主轴电机实时电流', '转速电流比', '腔体压力']
target = '出料压力'

X = data[features]
y = data[target]

5建模与预测

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score

# 数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 使用线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)

# 模型预测
y_pred = model.predict(X_test)

# 模型评估
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f'Mean Squared Error: {mse}')
print(f'R^2 Score: {r2}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值