人工智能学习2(python数据清洗)

编译工具:PyCharm

一.数据清洗

转化数据类型、处理重复数据、处理缺失数据

import pandas as pd

df = pd.read_csv("/data.csv")
df.sample(10)  # 用于随机获取数据并返回结果
df.head(10)  # 查看前十条数据
df.tail(10)  # 查看后十条数据
df.shape  # 查看表格行列数
df.describe()  # 查看数据的统计信息
df.dtypes  # 查看每一列特征的数据类型

1.转换数据类型

pandas可以产生两种类型表格,DataFrame产生多行多列;Series产生多行单列的表格

# 转换数据类型
# pandas可以产生两种类型表格,DataFrame产生多行多列;Series产生多行单列的表格
import pandas as pd

df = pd.DataFrame([{'col1': 'a', 'col2': '1'}, {'col1': 'b', 'col2': '2'}])
print(df.dtypes)
print(df)
# 将该列的数据类型转化为int类型
df['new_col'] = df['col2'].astype(int)
print(df)
print(df.dtypes)

print("---------Series创建多行单列表格--------")
# 多行单列表格
s = pd.Series(['1', '2', '4.7', 'pandas', '10'])
# 转化的时候忽略非法字符,缺点:忽略了但是数据依然存在,数据分析的时候会有问题
print(s.astype(float, errors='ignore'))
# 使用pd.to_numeric
print(pd.to_numeric(s, errors='coerce'))
print(s)

在这里插入图片描述
在这里插入图片描述

转换数据类型小练习

print("--------------------------------------------")
# 小练习:将下面的数据转成float类型,并且去掉'$'以及','
print("-----练习1: 下面的数据转成float类型,并且去掉'$'以及','-----")
df1 = pd.DataFrame([{'2016':'$125,000.00','2017':'162500.00'},
                    {'2016':'$920,000.00','2017':'101,2000.00'},
                    {'2016':'$50,000.00','2017':'62500.00'},
                    {'2016':'$350,000.00','2017':'490000.00'}])
print(df1)
# 定义函数
def convert_money(value):
    new_value=value.replace("$","").replace(",","")
    return float(new_value)
# 将'2016'这一列作为参数使用convert_money函数
print("------清洗2016的结果------")
print(df1['2016'].apply(convert_money))


# 匿名函数清洗增长率
print("-----练习2: 匿名函数清洗增长率-----")
df2 = pd.Series(['30.00%','20.00%','10.00%','16.77%'])
print(df2)
print(df2.apply(lambda x: float(x.replace("%","")) / 100 ))


# 将数据转换为浮点数类型
print("-----练习3: 数据转换为浮点数类型-----")
df3 = pd.Series(['500','700','125','175','Closed'])
# 注意是pandas.to_numeric而不是df3.to_numeric
print(pd.to_numeric(df3, errors='coerce'))


# 将原本数据用1或者0表示
print("-----练习4: 将原本数据用1或者0表示-----")
df4 = pd.Series(['Y','Y','Y','N','N'])
# 需要引入numpy库内含许多数据运算函数
import numpy
print(numpy.where(df4 == 'Y', 1, 0))


# 将Month、Day、Year三个特征的数据合并为一个日期类型的特征
print("-----练习5: 将Month、Day、Year三个特征的数据合并为一个日期类型的特征-----")
df5 = pd.DataFrame([{'Year':2015,'Month': 1,'Day':10},
                    {'Year':2014,'Month': 6,'Day':15},
                    {'Year':2016,'Month': 3,'Day':29},
                    {'Year':2015,'Month': 10,'Day':27}])
print("     原始数据:")
print(df5)
# 使用pandas库中自带的to_datetime
print("     合并后数据:")
print(pd.to_datetime(df5[['Month', 'Day', 'Year']]))

相应的运行结果如下:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/194307.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RK3568 android11 实现双路I2C触摸 --gt9xx

一,GT911 触摸屏简介 它的接口类型为 I2C ,供电电压和通讯电压均为 3.3V 。这款电容触摸屏内置了上拉电阻,这意味着我们的开发板上与该触摸屏的接口处不需要设置上拉电阻。关于线序,同样是 GT911 ,不同批次的器件都有…

从0开始学习JavaScript--JavaScript对象继承深度解析

JavaScript中的对象继承是构建灵活、可维护代码的关键部分。本文将深入讨论JavaScript中不同的继承方式,包括原型链继承、构造函数继承、组合继承等,并通过丰富的示例代码展示它们的应用和差异。通过详细解释,大家可以更全面地了解如何在Java…

vulfocus apache-cve_2021_41773 漏洞复现

vulfocus apache-cve_2021_41773 漏洞复现 名称: vulfocus/apache-cve_2021_41773 描述: Apache HTTP Server 2.4.49、2.4.50版本对路径规范化所做的更改中存在一个路径穿越漏洞,攻击者可利用该漏洞读取到Web目录外的其他文件,如系统配置文件、网站源码…

IDEA中也能用postman了?

Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…

修改mysql的密码(每一步都图文解释哦)

当你想要连接本机数据库时,是不是有可能突然忘记了自己的数据库密码? 在此文中,我们来详细解决一下如何去修改自己的数据库密码,并使用Navicat来连接测试 1.停止mysql服务 打开终端,键入命令,将mysql服务先停止掉,…

Matlab论文插图绘制模板第128期—函数三维折线图(fplot3)

在之前的文章中,分享了Matlab函数折线图的绘制模板: 进一步,再来分享一下函数三维折线图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关…

Linux系统编程:文件系统总结

目录和文件 获取文件属性 获取文件属性有如下的系统调用,下面逐个来分析。 stat:通过文件路径获取属性,面对符号链接文件时获取的是所指向的目标文件的属性 从上图中可以看到stat函数接收一个文件的路径字符串(你要获取哪个文件的属性&a…

数据结构和算法-树和二叉树的定义和基本术语和性质

文章目录 树的基本概念和相关术语相关的应用节点间的关系描述节点,树的属性描述有序树vs无序树树vs森林小结 树的相关性质考点1考点2考点3考点4考点5考点6小结 二叉树的相关概念和基本术语重要 (五种状态)特殊二叉树小结 二叉树的相关性质二叉…

SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解

目录 一、Nacos持久化 1.持久化说明 2.安装mysql数据库5.6.5以上版本(略) 3.修改配置文件 二、nacos高可用 1.集群说明 2.nacos集群架构图 2.集群搭建注意事项 3.集群规划 4.搭建nacos集群 5.安装Nginx 6.配置nginx conf配置文件 7.启动nginx进行测试即可 一、Nacos持久…

【算法】NOIP2003神经网络

题目描述 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一直是当今的热门方向,兰兰同学在自学了一本神经网络的…

经验分享:JMeter控制RPS

一、前言 ​ RPS (Request Per Second)一般用来衡量服务端的吞吐量,相比于并发模式,更适合用来摸底服务端的性能。我们可以通过使用 JMeter 的常数吞吐量定时器来限制每个线程的RPS。对于RPS,我们可以把他理解为我们的TPS,我们就…

19.Oracle11g中的游标

oracle11g中的游标 一、案例引入二、什么是游标三、隐式游标1、隐式游标的属性2、创建语法3、示例 四、显示游标1、显示游标的属性2、创建语法3、示例 五、REF游标1、REF游标的属性2、创建语法3、示例 六、循环游标1、 循环游标的作用2、用for 与 loop 创建3、示例 一、案例引入…

基于可微分渲染器的相机位置优化【PyTorch3D】

在这个教程中,我们将使用可微渲染学习给定参考图像的相机的 [x, y, z] 位置。 我们将首先使用相机的起始位置初始化渲染器。 然后,我们将使用它来生成图像,使用参考图像计算损失,最后通过整个管道进行反向传播以更新相机的位置。…

【开源】基于Vue+SpringBoot的企业项目合同信息系统

项目编号: S 046 ,文末获取源码。 \color{red}{项目编号:S046,文末获取源码。} 项目编号:S046,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合…

Flask Echarts 实现历史图形查询

Flask前后端数据动态交互涉及用户界面与服务器之间的灵活数据传递。用户界面使用ECharts图形库实时渲染数据。它提供了丰富多彩、交互性强的图表和地图,能够在网页上直观、生动地展示数据。ECharts支持各种常见的图表类型,包括折线图、柱状图、饼图、散点…

FFmepg 核心开发库及重要数据结构与API

文章目录 前言一、FFmpeg 核心开发库二、FFmpeg 重要数据结构与 API1、简介2、FFmpeg 解码流程①、FFmpeg2.x 解码流程②、FFmpeg4.x 解码流程 3、FFMpeg 中比较重要的函数以及数据结构①、数据结构②、初始化函数③、音视频解码函数④、文件操作⑤、其他函数 三、FFmpeg 流程1…

【活动回顾】sCrypt在柏林B2029开发者周

B2029 是柏林的一个区块链爱好者、艺术家和建设者聚会,学习、讨论和共同构建比特币区块链地方。 在2023年6月9日至11日,举行了第7次Hello Metanet研讨会。本次研讨会旨在为参与者提供一个学习、讨论和共同构建比特币区块链的平台。 在这个充满激情和创意…

C语言:输出所有“水仙花数”。“水仙花数”是指一个3位数,其各位数字的立方和等于该数本身,如153=1^3 +5^3+3^3

分析: 在主函数 main 中,程序首先定义四个整型变量 m、a、b 和 c,并用于计算和判断水仙花数。然后使用 printf 函数输出提示信息。 接下来,程序使用 for 循环结构,从 100 到 999 遍历所有三位数。对于每个遍历到的数 m…

Vue简易的车牌输入键盘,可以根据需要修改

效果图如下&#xff1a; 代码如下&#xff1a; <template><div><div class"carNoBoxInput"><div style"padding: 6px;border: 2px solid #fff;border-radius: 6px;margin: 6px 3px 6px 6px;"><input class"inputBox"…

Make sure bypassing Vue built-in sanitization is safe here.

一、问题描述 二、问题分析 XSS(跨站脚本攻击) XSS攻击通常指的是通过利用网页开发时留下的漏洞&#xff0c;通过巧妙的方法注入恶意指令代码到网页&#xff0c;使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript&#xff0c;但实际上也可以包括J…