数据准备(data preparation)

2023-11-17

数据预处理及数据准备

提到数据预处理,首先不得不考虑到pandas库,链接pandas


数据准备前置知识

数据准备(data preparation) 包括数据清理及数据变形,真实世界的数据是什么样子的?为什么数据清理和数据变形是数据处理流程的不可缺少的一部分呢?

进行数据处理,我们离不开一个重要的库:pandas
以及数据可视化库:matplotlib

pandas常用命令如下:

import pandas as pd

df=pd.read_csv('filename')#读取csv文件,并用df表示
df.to_csv('filename')#写入csv文件

df_1=pd.read_excel('filename')#读取excel文件
df_1.to_excel('filename')#写入excel文件

from sqlalchemy import create_engine
engine=create_engine('sqlite://foo.db')
df_2=pd.read_sql_table('tablename',engine)
df_2.to_sql('tablename',engine)#写入sql数据库


data=[a,b]
df=pd.DataFrame(data=data,columns=['name','age'])#构造 DataFrame数据格式

df.columns
df.info()

df.shape

df[df.name=='a']#筛选

df['age'].sum()
cumsum()
min()
max()
mean()
median()

matplotlib 常用命令如下

import matplot.pyplot as plt

plt.plot(x)
plt.show()

plt.scatter(x,y)
plt.show()

plt.hist(y,bin= )
plt.show()



plt.figure(figsize=)
plt.subplot(1,2,1)
plt.plot(z)
plt.title('')

机器学习库:
Scikit Learn

数据处理步骤

清洗,变形(Cleaning/Transformation)
整合(integration)
模型化和可视化(modeling/visualization)

其中,数据清洗的难点主要在于缺失值、外点、噪声和不一致数据(如数值2和low对应,不好判别)
数据变形的主要方法有归一化、聚集和离散
归一化:将数值转化成公共范围内的比列而不会扭曲差异
离散化:字如其意,将连续数值离散化

数据预处理实战

二、使用步骤

1.读入数据

import pandas as pd

# readinf the data
df = pd.read_csv("CombinedCyclePowerPlantDirty.csv")
# two samples,打印前两条信息
print("data samples")
print(df.head(2))

# columns and types
print("columns types")
print(df.dtypes)

print("Full Info")
print(df.info())#打印数据信息,数据格式等

在这里插入图片描述

df["AP"].hist()#或者plt.hist(df.['AP'])
plt.title("AP")
plt.show()

创建一个关于所有变量的分散矩阵

df = pd.read_csv("CombinedCyclePowerPlantDirty.csv")

# scatter matrix
pd.plotting.scatter_matrix(df)

在这里插入图片描述
在这里插入图片描述
看变量与变量之间的相关关系

print("AP")
df.AP.hist()
plt.show()
print("min ", df.AP.min())
print("max ", df.AP.max())
print("mean ", df.AP.mean())
df = df[df.AP > 0]
df = df[df.AP < 100000]

每一列的数据画图,并且筛选数据

import pandas as pd
import matplotlib.pyplot as plt


df.AT = df.AT.apply(lambda x: x.replace("o","0"))
df.AT = df.AT.apply(float)

df.AT.hist()

替换掉不合格的数据

# PE AT
plt.scatter(df.AT,df.PE)
plt.title("PE, vs AT")
plt.show()

# PE V
plt.scatter(df.V,df.PE)
plt.title("PE, vs V")
plt.show()

在这里插入图片描述
比较值


datasets = {}
for name in df.TCN.unique():
    datasets[name] = df[df.TCN == name]
    plt.scatter(datasets[name].AT, datasets[name].PE, label=name)
plt.legend()
plt.show()

# Daniel Smithson had his data in F


def corrector(row):
    if row["TCN"] == "Daniel Smithson":
        return (row["AT"]-32)*5/9
    else:
        return row["AT"]


df.AT = df.apply(corrector, axis=1)

datasets = {}
for name in df.TCN.unique():
    datasets[name] = df[df.TCN == name]
    plt.scatter(datasets[name].AT, datasets[name].PE, label=name)
plt.legend()
plt.show()

在这里插入图片描述
按子集比较数据集之间的关系

from sklearn.ensemble import IsolationForest

clf = IsolationForest(
        behaviour='new', 
        max_samples=100,
        random_state=1,
        contamination=0.01)

clf.fit(df[['AP', 'RH']])
df["anomaly"] = clf.predict(df[['AP', 'RH']])

color = ["r" if data==-1 else "b" for data in df["anomaly"]]
plt.scatter(df.AT,df.PE,c=color)
plt.show()
plt.scatter(df.V,df.PE,c=color)
plt.show()

pd.plotting.scatter_matrix(df,c=df.anomaly)
plt.legend()
plt.show()

# filter and show again
pd.plotting.scatter_matrix(df[df.anomaly!=-1])
plt.show()

用离群森林去除外点、异常值

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据准备(data preparation) 的相关文章

  • 打开PowerPoint提示:PowerPoint上次起送时失败。以安全模式启动PowperPoint将帮助您纠正或发现启动中的问题

    PowerPoint 无法打开 1 问题 PowerPoint 上次启动时失败 以安全模式启动PowerPoint 将帮助您纠正或发现启动中的问题 以便下一次成功启动应用程序 但是在这种模式下 一些功能被禁用 是否使用 安全模式 启动Pow
  • 数学计算模拟类问题:加法,除法和幂,注意越界问题。题 剑指Offer,Pow(x, n) ,Divide Two Integers

    数学计算的模拟类题目 往往是要求实现某种计算 比如两数相除 实现的过程中会有所限定 比如不允许乘法等等 这类题目首先要注意计算过程中本身的特殊情况 比如求相除 则必须首先反映过来除数不能为0 其次要记得考虑负数的情况 如果计算范围不单单是整
  • 简单的matlab分布式计算

    matlab的分布式计算可以理解为一台机器作为client 主控机 其他的机器分别作为计算的结点 要由client进行控制和操作 如果把单机上的 m文件直接放到client运行 是不会产生分布式计算的效果的 只相当于在主控机进行了计算 而其
  • 【JavaScript】defer和async的区别

    转载自 https segmentfault com q 1010000000640869 先来试个一句话解释仨 当浏览器碰到 script 脚本的时候 没有 defer 或 async 浏览器会立即加载并执行指定的脚本 立即 指的是在渲染
  • 华为性格测试通关指南

    一 华为性格测试关键要点 前后一致 积极乐观 吃苦耐劳 二 华为喜欢的人才性格画像 服从领导 能够按部就班按时完成工作 能够死命干活 没有太多性格 比如有野心 好胜 想当领导 坚持己见 坚持自己做事方式 别人有错当面硬刚这些类似的性格 喜欢
  • java实现航班信息查询管理系统

    一 任务概述 二 目录结构 三 详细代码 JDBC工具类模块 package com kaikeba task task010404 utils import com alibaba druid pool DruidDataSource i
  • python打包编译成pyd或者,Python .py生成.pyd文件并打包.exe 的注意事项说明

    最近用python写了一个小程序 想发布出去让人试用又不想暴露源码 搜索了一下发现将py文件编译成pyd文件就能达到目的 转换过程很简单 但是在调用pyd文件并且打包为单个exe文件的时候遇到一个坑 搞了一天才解决 在这里分享一下 首先安装
  • 使用post请求建立长连接实现sse,接收后端主动发来的消息,实现chat-gpt的弹字效果,EventSource的应用

    每日鸡汤 每个你想要学习的瞬间都是未来的你向自己求救 最近在做一个chat相关的功能 然后由于接口返回特别特别慢 所以需要搞一个慢慢等待的效果 就是接口一个单词一个单词的返回 然后前端收到一个展示一个 提升用户体验 说实话我是第一次做这类需
  • 消费者不用手机凭一张脸就能完成支付和转账

    以前出门要看钱包交易完成的节点 而商业活动发生于诸多场景中 商家若想为消费者提供更好的服务 就必须更深入地了解消费人群 赢得消费者的青睐 蜻蜓二代推出的AI刷脸会员功能 帮助商家完成顾客的会员一键开卡 不涉及填表 确认 签字等繁琐的流程 只
  • ETL为什么经常变成ELT甚至LET?

    ETL是将数据从来源端经过清洗 extract 转换 transform 加载 load 至目的端的过程 正常的 ETL 过程应当是 E T L 这三个步骤逐步进行 也就是先清洗转换之后再加载进目标端 通常是数据库 最后在数据库中的只是合理
  • Hive(7) Hive的DML语句-Hive的数据库和表的修改和删除

    Hive 3 DML语句 DML 数据操作语句 导入数据 直接从文件向表中导入数据 load data load data local inpath lt 文件路径 gt overwrite into table lt 表名 gt part
  • 内部类详解

    目录 一 什么是内部类 二 内部类的划分 2 1 实例内部类 2 2 静态内部类 2 3 局部内部类 2 4 匿名内部类 一 什么是内部类 定义 当一个事物的内部 还有一个完整的结构进行描述 而这个内部的完整的结构又只为外部事物提供服务 那
  • 递归-回溯算法

    一 递归 回溯算法 1 递归的思想 递归就是方法自己调用自己 每次调用的时候传入不同的变量 2 递归的原理 1 每执行一个方法 就在 栈内存 中分配一块空间 该空间是独立的 2 如果是 基本数据类型 则每块空间中的变量都是局部变量 是相互
  • 简单理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别

    看来基础还是很重要的 基础不扎实就难以学好c语言 就别说写出高质量的c语言代码了 今天 我就被这个问题折磨的不行了 哈哈 不过现在终于明白了 0 0 0 之间的区别了 首先比较一下 0 和 0 的区别 有一个共同点就是它们都是字符 在c语言

随机推荐

  • 喜报

    8月16日 2023年度 IDC中国FinTech 50 榜单正式揭晓 擎创科技继2022年入选该榜单后 再次以创新者姿态成功入选 并以技术赋能业务创新 成为中国金融科技领域创新与活力的重要贡献者 IDC中国FinTech 50 旨在评选出
  • 网络安全岗位介绍——售前工程师

    一 工作内容 1 独立完成并配合销售人员引导客户完成方案设计 产品选型 配置报价和能为客户提供安全咨询与方案优化等服务 2 作为售前工程师 跟踪整个项目的进展 和销售进行配合 协调公司各种资源完成项目中标 3 编写投标文件的技术方案文档及投
  • Elasticsearch增删改查 之 —— Update更新

    Elasticsearch增删改查 之 Update更新 更新操作 一般用这个的 应该不会很多吧 ES本身还是一个倾向于查询检索的框架 对于这种更新的操作 太过频繁总归是不好的 不过阅读本篇后 你可以使用Script对所有的文档执行更新操作
  • 执行程序报错,could notcreate temporary directory ‘/tmp/poifiles‘

    could notcreate temporary directory tmp poifiles chmod R 777 tmp poifiles 重启jar包 运行命令就可以了
  • vba字典的key属性、item属性和keys方法、items方法、add方法

    1 key属性 修改字典中某一键值对的key值 2 item属性 修改字典中某一键值对的item值 3 keys方法 获取字典的所有键 4 items方法 获取字典的所有值 5 item属性 如果 key已存在 则修改其item值 如果不存
  • Jenkins之Maven的配置

    Jenkins之Maven配置与项目集成 1 Maven集成 1 1 环境准备 1 2 Jenkins的web界面配置 1 3 安装maven插件 1 Maven集成 在Jenkins上发布Java项目时需要使用Maven来进行构建打包 G
  • LLVM是如何编译指令的

    本文将会通过一条指令在LLVM中的不同阶段 从源程序语言中的语义结构到成为机器二进制码来研究LLVM的工作原理 本文不会介绍LLVM是如何工作的 这需要理解LLVM的设计以及code以及各种细节 输入代码 我们从一段C代码开始探险 如下 i
  • kali Linux-2020.3 火狐浏览器改为中文

    1 打开右上角菜单栏 进行下图操作 2 更改语言这里 支持下拉框选择 如果没有中文选项 进行搜索下载 图中为以更新中文后的 英文状态下位置应该是一样的 3 在搜索语言里找到中文 点击添加 添加成功后会提示 应用并重新打开 点击这个选项重新打
  • Linux调试、跟踪命令:strace/ltrace、ldd、objdump、nm、strings

    一 strace ltrace 1 1 功能 strace Trace system calls and signals 跟踪进程的系统调用或信号产生的情况 ltrace A library call tracer 跟踪进程调用库函数的情况
  • Android上面的百度地图使用步骤

    1 下载百度地图移动版API Android 开发包 要在Android应用中使用百度地图API 就需要在工程中引用百度地图API开发包 这个开发包包含两个文件 baidumapapi jar和libBMapApiEngine so 下载地
  • Swagger 的使用

    文章目录 Swagger 的使用 前言 Swagger 简介 SpringBoot 集成 Swagger 2 x SpringBoot 集成 Swagger 3 0 配置 Swagger 配置文档信息 配置扫描接口 配置功能是否启动 配置
  • scrapy,scrapy-redis显示:什么都没爬取到:Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)

    解决方法一 问题 刚开始爬取有 但是后面都是Crawled 0 pages at 0 pages min scraped 0 items at 0 items min 解决 可能是里面没有设置 yield scrapy Request do
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • 1.12mc java几,1.12 - 崩溃解答 - MC百科社群 - MC百科

    游戏是在mcbbs上找的the disguiser Mohist 崩溃报告 WARNING coremods are present ForgelinPlugin Forgelin 1 8 3 jar Inventory Tweaks Co
  • AcWing 1875. 贝茜的报复 枚举+dfs

    AcWing 1875 贝茜的报复 打卡 这题的dfs太妙了 include
  • window.history.go(-1)和window.location.go(-1)的区别

    为什么80 的码农都做不了架构师 gt gt gt window history go 1 是返回上一页 window location go 1 是刷新上一页 弹出子页面
  • 安装redis 管理工具、redis扩展服务

    1 查看php 的版本 还有这种方式 在网站根目录下新建一个简单的phpinfo文件 输入phpinfo函数 在浏览器中打开 2 PHP 7 3 4 安装 Redis 4 0 Windows系统 直接在浏览器中搜索下载 Redis 4 0
  • svg怎么转换成png格式?

    svg怎么转换成png格式 在我们日常的工作和学习当中 会使用各种格式的图片 在使用的过程中 我们会发现每种格式的图片所具备的特点是完全不同的 像svg就是一种矢量图 一系列由线连接的点的实体 一般在用在图像 文字以及标志设计等场景 从它的
  • 按键精准控制步进电机起保停,正反转(Arduino+TB6600驱动器)

    精准控制步进电机起保停 正反转 Arduino TB6600驱动器 步进电机和驱动器相关的资料 https pan baidu com s 1udb4MyEOXk4CTO7TKRHj6w 提取码 fuea 步进电机 TB6600驱动器 接线
  • 数据准备(data preparation)

    数据预处理及数据准备 提到数据预处理 首先不得不考虑到pandas库 链接pandas 文章目录 数据预处理及数据准备 数据准备前置知识 数据处理步骤 数据预处理实战 二 使用步骤 1 读入数据 创建一个关于所有变量的分散矩阵 数据准备前置