本文介绍: 可以用来修改某一列读取参数类型,一般在数据读取的时候,读到某一列全部是数据,会默认把该列的数据类型定义int类型,但是,如果遇到数据是0开头的,就会出现问题,因此,可以使用dtype定义某一列的数据类型为想要的类型,一般是把int类型定义str类型读取。举个不太恰当的例子,张三买车得到了一次砸金蛋的机会,他当然不能用手砸,于是他顺手抄起旁边的锤子就砸了一个金蛋。用来读取数据的前5行,pandas会在读取数据自动数据前加一行索引,也就是在YM前面的一列,这个索引一般是用来定位数据的。

基础知识

pandas 可以读取多种的数据格式针对excel来说,可以使用read_excel()读取数据,如下:

import pandas as pd
df=pd.read_excel('test_xls')
print(df.head())

在这里插入图片描述
但是,值得注意的是:pandas读取excel文件的时候需要调用读取第三方库(简称 引擎)

举个不太恰当的例子,张三买车得到了一次砸金蛋的机会,他当然不能用手砸,于是他顺手抄起旁边的锤子就砸了一个金蛋。这个例子里面的张三相当于pandas,金蛋就是excel文件,锤子就是读取文件引擎

pandas支持四种excel文件读取引擎我们用的最多的是”xlrd“和”openpyxl“,其中”xlrd“是用来读取“.xls文件的,而”openpyxl“是用来读取“.xlsx“及其他07版以后的新格式

其实”xlrd“和”openpyxl“都是python的库,可以单独的安装使用。命令pip install xlrd

语法

参数详解index_col

在这里插入图片描述
在该代码中,df.head()用来读取数据的前5行,pandas会在读取数据后自动在数据前加一行索引,也就是在YM前面的一列,这个索引一般是用来定位数据的。默认情况下,index_col=None,也就是说默认会添加一列自增的行索引。

如果数据本身有索引列,可以指定第几列为索引,如索引在第一列那我们就写index_col=0,第二列就写index_col=1
在这里插入图片描述
**索引可以不唯一,也可以有多层索引(MultiIndex)如果有多层索引,那么index_col需要传入一个数组,**如,df=pd.read_excel('test.xls',index_col=[0,1,3])就是说把第一列,第二列,第四列都作为索引

参数详解header

如果不指定的话默认自动谈价一行列索引,如果一个数据中出现两个列索引,可以使用header来告诉pandas列索引所在的位置,如header=[0,1]就是告诉pandas第一列和第二列都是列索引

参数详解usecols

如果不想显示某一列,可以使用usecols参数代码三张写法

  1. 使用列字母
  2. 使用列的位置序号
  3. 使用列名
    在这里插入图片描述
    在以上数据中,使用一下代码有相等的效果
df = pd.read_excel("pf.xlsx",usecols=["A,C:E"])
df = pd.read_excel("pf.xlsx",usecols=[1,3,4,5])
df = pd.read_excel("pf.xlsx",usecols=["YM,CJ2,CJ3,CJ4"])

参数详解-dtype

可以用来修改某一列读取的参数类型,一般在数据读取的时候,读到某一列全部是数据,会默认把该列的数据类型定义int类型,但是,如果遇到数据是0开头的,就会出现问题,因此,可以使用dtype来定义某一列的数据类型为想要的类型,一般是把int类型定义为str类型读取。如一个学号的数据为001,如果不使用dtype,读取的时候,在终端上显示的就是1,如果使用dtype={"学号" : str }后,输出结果001

其他参数

  1. na_values:自定义空值比如说张三第一学期的语文考试因为某些原因没有靠,成绩那边填写的是“缺考”。那我们就可以设置na_values=[“缺考”],这样导入后张三第一学期的成绩就会自动被识别pandas的默认空占位符NaN
  2. parse_dates:如果excel里面日期列填写的不太规范,可以使用这个参数,告诉pandas哪一列是日期,保证日期格式读取的准确性
  3. true_values:指定真值,比如true_values=[“是”],那么,数据中的”是“就会被识别为True
  4. false_values:指定假值,比如false_values=[“否”],那么,数据中的”否“就会被识别为False

多表读取

接下来让我们来看另一种情况,上面的例子中,Sheet1Sheet2放置在同一张表的,如果想要区分为两张表,一般方法是可以读两遍read_excel,搭配sheet_name=[表名]参数。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

df1=pd.read_excel('test.xls',sheet_name='Sheet1')
print(df1.head())

df2=pd.read_excel('test.xls',sheet_name='Sheet2')
print(df2.head())

在这里插入图片描述


顺带提一句如何pandas写数据到excel

import pandas as pd


# pandas 存储数据到excel
def pd_toexcel(data,filename):
    dfData = { # 用字典设置DataFrame所需数据
        '序号':data[0],
        '项目':data[1],
        '数据':data[2]
    }
    df = pd.DataFrame(dfData) # 创建DataFrame
    df.to_excel(filename,index=False) # 存表,去除原始索引列(0,1,2...)



"""--------------数据用例---------------"""
orderIds=[1,2,3]
items=['A','B','C']
myData=[10,20,30]
testData=[orderIds,items,myData]

filename='write.xlsx'
pd_toexcel(testData,filename)


在这里插入图片描述

PS:这里需要用到openpyxl模块

原文地址:https://blog.csdn.net/CodePlayMe/article/details/130094032

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_11795.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注