第5章 使用pandas进行数据预处理 实训

        嗨喽! 大家好,我是“流水不争先,争的是滔滔不绝”的翀,欢迎大家来交流学习,一起入坑数据分析,希望我们一起好好学习,天天向上,目前在社会毒打中~~

第5章实训

实训1 插补用户用电量缺失值

# 拉格朗日插值
from scipy.interpolate import lagrange
import pandas as pd
import numpy as np
data = pd.read_csv('../data/missing_data.csv')
# 查看一下数据
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 21 entries, 0 to 20
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   A       19 non-null     float64
 1   B       17 non-null     float64
 2   C       17 non-null     float64
dtypes: float64(3)
memory usage: 632.0 bytes
#拉格朗日插值
#dropna().index用于记录非缺失值的下标
#dropna().values用于记录非缺失值的实际值
for i in['A','B','C']:
    # 训练模型
    la = lagrange(data.loc[:,i].dropna().index,data.loc[:,i].dropna().values)
    # 用list_d用于记录当前列缺失值所在的行(记录缺失值下标)
    list_d = list(set(np.arange(0,21)).difference(set(data.loc[:,i].dropna().index)))
    data.loc[list_d,i] = la(list_d)
# 查看一下数据
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 21 entries, 0 to 20
Data columns (total 3 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   A       21 non-null     float64
 1   B       21 non-null     float64
 2   C       21 non-null     float64
dtypes: float64(3)
memory usage: 632.0 bytes

实训 2 合并线损,用电量趋势与线路告警数据

data_ele = pd.read_csv('../data/ele_loss.csv')
data_ala = pd.read_csv('../data/alarm.csv',encoding="gbk")
(49, 4)
print('查看ele_loss.csv数据形状:')
data_ele.shape
查看ele_loss.csv数据形状:





(49, 4)
print('查看alarm.csv数据形状:')
data_ala.shape
查看alarm.csv数据形状:





(25, 3)
data = pd.merge(data_ele,data_ala,left_on = ['ID','date'],right_on = ['ID','date'],how='inner')
print('合并后的形状:',data.shape)
data
合并后的形状: (6, 5)
IDdateelelossalarm
0212610012010/9/3858.00.151048电流不平衡
1212610012010/9/6883.50.162778C相电流过负荷
2212610012010/9/16915.50.162028C相电流过负荷
3212610012010/9/16915.50.162028C相电流过负荷
4212610012010/9/17961.00.166650A相电流过负荷
5212610012010/9/17961.00.166650电流不平衡

实训3 标准化建模专家样本数据

data = pd.read_csv('../data/model.csv',encoding = 'gbk')
def StandardScaler(data):
    data = (data - data.mean())/data.std()
    return data
S = StandardScaler(data)
S.head()
电量趋势下降指标线损指标告警类指标是否窃漏电
00.6127770.974549-0.1612162.500687
10.612777-1.0225902.6536162.500687
2-0.3433520.974549-0.1612162.500687
33.003099-1.022590-1.099494-0.398516
40.1347120.974549-1.099494-0.398516

总结

专栏学习

01 【数据分析实战项目】: 无人智能售货机商务分析线上课程智能推荐学术前沿趋势分析

02 【算法--数据挖掘】: 机器学习----吃瓜教程!集成学习深度学习 学术前沿趋势分析

03 【天池数据挖掘竞赛】: 心电信号多分类分类新闻推荐入门赛系统项目

04 【Python数据分析】: Numpy 数值计算基础Matplotlib 数据可视化基础Pandas 统计分析基础Pandas 进行数据预处理scikit-learn 构建模型

往期精彩内容

01 【常见的数据分析师的面试问题】: 基础知识考查、概率论与数理统计、数据挖掘、常见模型介绍、数据分析师工作必备技能等等

02 【基于条件随机场模型的中文分词】: 中文分析、python代码实现

03 【 Github开源项目】: Github开源项目 数分/数挖学习路线

       欢迎关注我,一起交流学习探索数据分析的世界,洞察数据!努力接受社会毒打~~

@翀- 我的博客主页

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据闲逛人

谢谢大嘎喔~ 开心就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值