我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用Python对EXCEL数据的预处理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用Python对EXCEL数据的预处理

一、熟悉数据

我们将EXCEL中的数据导入之后,需要对数据进行大致性的了解,当对数据充分地了解之后,才便于后期的分析工作。

该部分涉及到四个基本方法,分别为“shape”“info”“head”“describe”。下面会具体介绍四者的用法与功能。

以下是我准备好的一组简单的excel数据:

其中:“编号”“姓名”“识别码”“时间”称为索引列;左边的“1”“2”···“6”称为索引行。

通过第一篇的方法,将数据导入python中。代码与输出结果如下所示:

import pandas as pd
df=pd.read_excel(r"D:\杂货\新编码.xlsx",sheet_name='Sheet1')
print(df)

 此部分不再详述,请见第一篇。

1.1 shape

在导入excel表格数据后,使用该方法可以查看该表格的数据一共有多少行多少列,并以元组的形式输出。需要表明的是,该方法输出的行数和列数不包括索引行和索引列。

代码与输出结果如下:

m=df.shape#输出导入的列表有多少行多少列
print(m)

 最下面的(5,4)即为该方法输出的结果,解释为5行4列。

 1.2 info

该方法可以帮助我们查看所导入的每一列的数据类型,并且还能查看是否有缺省值。

代码与结果如下:

import pandas as pd
df=pd.read_excel(r"D:\杂货\新编码.xlsx",sheet_name='Sheet1')
df.info()#查看每一列的数据类型

 从输出结果可以看到,Column一列显示为头部的名称,即为我们的索引列;Non-Null Count一列表示该列有几个非缺省值,5 non-null表示该列中的每一个单元格都有内容填入,没有缺省值;Dtype一列则为每一列的数据类型,分别为object,int64,datetime64[ns]类型。

 1.3 head

该方法能够帮助我们预览表格的前几行的内容。

形式为:head()需要预览前面几行就在括号里填数字几。

代码与结果如下:

import pandas as pd
df=pd.read_excel(r"D:\杂货\新编码.xlsx",sheet_name='Sheet1')
n=df.head(1)#可选择预览前几行
k=df.head(2)
j=df.head(3)
print(n)
print(k)
print(j)

 以上分别输出了前1行,前2行,前3行。

1.4 describe

该方法能够帮助我们查看某一列int64类型数据的个数、平均数、标准差、最大值、最小值、分位数。

代码与结果如下:

import pandas as pd
df=pd.read_excel(r"D:\杂货\新编码.xlsx",sheet_name='Sheet1')
i=df.describe()#可查看数据的基本情况,int64类型的数据
print(i)

 由于只有“识别码”一列的数据为int64类型的数据,因此该方法最终输出的结果只有识别码的结果。

二、数据预处理

2.1 缺省值的处理

2.1.1 isnull()检查缺省值

首先我们要查看我们的数据里是否含有缺省值。在1.2部分已经介绍了使用info()方法查看缺省值,以下将介绍另一个检查缺省值的方法。代码与结果如下:

n=df.isnull()#true为缺省值print(n)

 可以看到,False表示该单元格不是缺省值,若该单元格为缺省值,则结果会显示为True。

2.1.2 dropna()缺省值的删除

 对于缺省值,我们可以选择删除它,代码与结果如下:

n=df.isnull()#true为缺省值
print(n)

上面介绍了两条代码,第一条从其注释可知道,当某一行存在一个单元格的内容为缺省值,那么无论其他单元格是否为缺省值,该行整行都会被删除;第二条代码的不同之处即在括号中有how='all',该方法下,只有当某一行的所有单元格皆为缺省值时,才会将该行整行删除,否则不会删除该行。

作为对比,我将一个单元格的内容删除。

 输出后的内容可以看到,王五所对应的识别码为NaN,这就表示该单元格无内容,是空的,即所说的缺省值。

首先输出的是dropna(how='all')的结果:

 可以看到,当只有王五的识别码为缺省值时,并没有删除该行。

接下来输出dropna()的结果:

可以看到,王五那一行因为有一个缺省值,整行都被删除掉了。

2.1.3 fillna()缺省值的填充

对于缺省值,我们也可以选择对其进行填充。

为了对比,我删除了两个单元格的值。

输出结果可知,姓名一列于识别码一列共有两个缺省值。 

x=df.dropna()#只要带有缺省值就整行删除
print(x)
y=df.dropna(how='all')#只删除整行是缺省值的行
print(y)

上面提供了两条代码,第一条代码表示将所有的缺省值都用“好”这个值填充,结果如下:

 第二条代码为指定用某个值填充某一列的缺省部分,即将姓名一列的缺省部分都用“王五”填充,识别码一列的缺省部分都用“103”填充。结果如下:

2.2 重复值的处理

对于表单中出现的重复项,我们可以使用drop_duplicates()方法来保留其中一个。默认保留第一个值。

为了对比,将数据修改为以下形式:

 可以看到,此时有两行的内容是相同的。

接下来使用所介绍的方法来解决重复项的问题,代码与结果如下:

x=df.fillna("好")#填缺省值,括号里写要填入的值
print(x)
y=df.fillna({'姓名':'王五','识别码':'103'})#指定列填入值,且可以多列填写,但都写在同一个字典里
print(y)

首先来看代码的第一行,该方法的作用在其注释处已经说明,不再赘述,从其输出结果看,索引行为“3”的那一行“王五”重复项被删除了,只保留了索引行为“2”的那一行“王五”。

接着看第二行代码的结果:

其输出的结果其实和第一种是一样的,虽然结果一样,但是两者的目的是不一样的,第二行代码括号中写入了一个列表['姓名','识别码'],该列表达到的作用就是指明我们要删除的哪一列中存在的重复项,即是说:我想将“姓名”一列中的重复项和“识别码”一列中的重复项进行处理。在此我以两个列名作为示例,若只想按照一个列名来删除重复项的,则只需写入一个列名即可。

 2.3 数据类型的转换

2.3.1 数据类型的查看

在前面已经介绍了使用info()方法查看数据类型,在此再介绍一种方法,代码与结果如下:

x=df['姓名'].dtype#针对查看某一列的数据类型print(x)

 该方法是只能查看某一列的数据类型,只能查看一列,不能查看多列。只需将想查看的那一列的索引列名称写入中括号即可。最后输出结果可以看到“姓名”一列的数据类型为object。

2.3.2 数据类型的转换

这里我们使用的方法为astype()方法,首先查看原始数据中“识别码”的数据类型。

 可以看到其数据类型为int64。

接下来我们来修改该列的数据类型为float64,代码与结果如下:

y=df['识别码'].astype('float64')print(y)

 可以看到输出结果中识别码一列的数据有了小数点后一位,且其dtype显示为float64。

2.4 索引的设置

2.4.1 添加索引

索引的添加很简单,以下是索引列的添加(修改)代码与结果如下:

df.columns=['号编','名姓','码别识','间时']print(df)

 可以看到,最上面的索引列名称被我替换掉了。

以下是索引行的添加(修改)。

df.index=['2','4','6','8','10']print(df)

可以看到,最左边的索引行名称被我改成了2,4,6,8,10。

需要注意的是,有多少行多少列就要添加多少行多少列的索引,不然会报错。

2.4.2 重新设置索引

我们还可以使用列表中的某一列数据作为索引。方法是set_index()。

代码与结果如下:

x=df.set_index("姓名")print(x)

 从结果可以看出,最左边的索引不再是数字,而成了姓名。

2.4.3 索引的重命名

针对重命名索引,有以下三种写法:

df.rename(columns={"原来的索引":"想要修改成的索引"})        该方法只修改索引列的名称

df.rename(index={"原来的索引":"想要修改成的索引"})        该方法只修改索引行的名称

df.rename(columns={"原来的索引":"想要修改成的索引"},index={"原来的索引":"想要修改成的索引"})        该方法能同时修改索引列和索引行的名称

需要注意:该方法都使用了列表。代码与结果如下:

x=df.drop_duplicates()#对所有值进行重复值判断,并且默认保留第一个(行)值
y=df.drop_duplicates(subset=['姓名','识别码'])#只针对某一列或某几列进行重复值删除的判断。
print(x)
print(y)

上面的结果可以看出,索引行与索引列都分别修改成功,成为我所想要修改的名称。

2.4.4 重置索引 

该部分主要是针对层次化的excel表格使用,相对而言较为繁琐,在这里暂时不过多讲述,仅仅对方法进行展示。

x=df['姓名'].dtype#针对查看某一列的数据类型
print(x)

由于本人在使用该方法时无法成功重置,因此暂时不对该方法进行详解,待之后找到原因再详细介绍该方法。

三、结语

本篇内容较多,但仍然是基于已有的表格进行的一些基础操作,后期介绍会逐步深入。若有错误还请指出。

到此这篇关于使用Python处理EXCEL基础操作篇2Python对EXCEL数据的预处理的文章就介绍到这了,更多相关Python对EXCEL数据预处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用Python对EXCEL数据的预处理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用Python对EXCEL数据的预处理

这篇文章主要介绍了使用Python处理EXCEL基础操作篇2,如何使用Python对EXCEL数据的预处理,文中提供了解决思路和部分实现代码,一起来看看吧
2023-03-22

使用Python怎么对Excel进行处理

本篇文章为大家展示了使用Python怎么对Excel进行处理,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本
2023-06-07

怎么用Python做数据预处理

这篇文章给大家介绍怎么用Python做数据预处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前戏在拿到一份数据准备做挖掘建模之前,首先需要进行初步的数据探索性分析(你愿意花十分钟系统了解数据分析方法吗?),对数据探索
2023-06-02

怎么用Python处理excel表格中的数据

这篇文章主要介绍怎么用Python处理excel表格中的数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、基础、常用方法1. 读取excel1、导入模块:import xlrd2、打开文件:x1 = xlrd.o
2023-06-29
2023-01-31

Python数据预处理常用的技巧有哪些

本篇内容介绍了“Python数据预处理常用的技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据集这是一个包含脏数据的示例数据框让我
2023-06-29

Python 中怎么利用Pandas处理复杂的Excel数据

本篇文章为大家展示了Python 中怎么利用Pandas处理复杂的Excel数据,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。问题缘起pandas read_excel函数在读取Excel工作表方
2023-06-16

使用Python读Excel数据Inse

#!/usr/bin/env python#coding:utf-8import xlrdimport MySQLdbimport datetime  xlsfile=r'C:\Users\XUWU\Desktop\data.xlsx'bo
2023-01-31

python数据预处理的方法有哪些

Python数据预处理的方法有:1. 数据清洗:处理缺失值、异常值、重复值等问题。2. 数据整合:将不同来源的数据整合到一起,如合并多个数据集、拼接数据等。3. 数据变换:对数据进行转换,如数据类型转换、标准化、归一化、离散化等。4. 特征
2023-08-09

使用python怎么对表格数据进行处理

这篇文章给大家介绍使用python怎么对表格数据进行处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python对Excel表格的处理首先我们看一个最简单的情况,我们先不考虑性能的问题,那么我们可以使用xlrd这个工
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录