pandas常用函数学习,从文件读取输出过程中学会处理数据

本文主要是介绍pandas常用函数学习,从文件读取输出过程中学会处理数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注微信公众号:excelwork

 上一篇文章通过一些简单的例子了解了pandas,今天将重点介绍下pandas读取数据常用的函数:read_csv,并通过to_csv函数输出数据到文件辅助理解。read_csv可用来读取url和带有分隔符csv格式文件等,参数如下:

pandas.read_csv(filepath_or_buffer:Union[str,pathlib.Path,IO[~AnyStr]],sep=',',delimiter=None,header='infer',names=None,index_col=None,usecols=None,squeeze=False,prefix=None,mangle_dupe_cols=True,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skipinitialspace=False,skiprows=None,skipfooter=0,nrows=None,na_values=None,keep_default_na=True,na_filter=True,verbose=False,skip_blank_lines=True,parse_dates=False,infer_datetime_format=False,keep_date_col=False,date_parser=None,dayfirst=False,cache_dates=True,iterator=False,chunksize=None,compression='infer',thousands=None,decimal:str='.',lineterminator=None,quotechar='"',quoting=0,doublequote=True,escapechar=None,comment=None,encoding=None,dialect=None,error_bad_lines=True,warn_bad_lines=True,delim_whitespace=False,low_memory=True,memory_map=False, float_precision=None)

    充分理解读取函数的参数,有助于我们在第一步读取阶段,就可以将数据问题处理一大半。

一、数据读取看一下结构

    参数先默认,直接使用read_csv函数读取全部数据,如下图(用截图excel文件内容展示):

data=pd.read_csv(r'C:\Users\king\Desktop\示例数据.csv')
print (data)

 

二、过滤多余行,获取红框中数据内容

    除了红框内标准数据,前6行和后7行数据我们是不需要的。

2.1 先使用skiprows参数跳过前6行

data=pd.read_csv(r'C:\Users\king\Desktop\示例数据.csv',skiprows=6)
data.to_csv(r'C:\Users\king\Desktop\skiprows_1.csv')#输出到excel方便大家阅读体验

    结果如下:如红框中所示,乱码了,咱接着往后看如何解决~

2.2 输出文件中文乱码

    上面输出数据中文乱码,我们使用encoding参数将格式转成gbk,如下图黄框所示,中文内容输出后正常。

data=pd.read_csv(r'C:\Users\king\Desktop\示例数据.csv',skiprows=6)
data.to_csv(r'C:\Users\king\Desktop\skiprows_1.csv',encoding='gbk')

2.3 使用skipfooter过滤后7行​​​​​​​

data=pd.read_csv(r'C:\Users\king\Desktop\示例数据.csv',skiprows=6,skipfooter=7,encoding='utf-8',engine='python')
data.to_csv(r'C:\Users\king\Desktop\skiprows_2.csv',encoding='gbk')

    嗯~又报错了看上去还是编码问题~解决它!

UnicodeEncodeError: 'gbk' codec can't encode character '\ufffd' in position 23: illegal multibyte sequence

2.4 使用skipfooter报错解决

    我们在读取时encoding='utf-8'再次尝试,没问题,不过出现了警告,根据警告提示,我们读取时限定下engine='python'即可。

ParserWarning: Falling back to the 'python' engine because the 'c' engine does not support skipfooter; you can avoid this warning by specifying engine='python'.​​​​​​​

data=pd.read_csv(r'C:\Users\king\Desktop\示例数据.csv',skiprows=6,skipfooter=7,encoding='utf-8',engine='python')
data.to_csv(r'C:\Users\king\Desktop\kingskiprows_2.csv',encoding='gbk')

    结果如下:

 

三 修改表结构

3.1 修改表头名

    我们看到,表头还包含括号,不便于后续调用列,所以我们在读取时就处理好。

3.1.1 跳过原有标题行,自定义列名

    因为之前输出文件名skiprows_2的文件时,编码是gbk,所以读取skiprows_2文件的时候,encoding=‘gbk'。​​​​​​​

data=pd.read_csv(r'C:\Users\king\Desktop\skiprows_2.csv',skiprows=1,encoding='gbk',engine='python',names=['震级','时刻','纬度','经度','深度','位置'])
data.to_csv(r'C:\Users\king\Desktop\skiprows_3.csv',encoding='gbk'

3.2 避免每次读取增加索引列

    如上图前两列重复,我们最多需要一列这种索引列,如何去除多余列?

此次读取skiprows_2文件里,设置索引列为空,参数index_col=False即可。​​​​​​​

data=pd.read_csv(r'C:\Users\king\Desktop\skiprows_2.csv',skiprows=1,encoding='gbk',engine='python',names=['震级','时刻','纬度','经度','深度','位置'])
data.index_col=False
data.to_csv(r'C:\Users\king\Desktop\skiprows_3.csv',encoding='gbk')

四、数据处理

4.1 空值处理

    如果源文件里空值存成了NULL,想显示空即可,参数na_values​​​​​​​

data=pd.read_csv(r'C:\Users\king\Desktop\skiprows_3.csv',encoding='gbk',engine='python',na_values='')data.to_csv(r'C:\Users\king\Desktop\skiprows_4.csv',encoding='gbk')

4.2 大文件处理

    当数据过大,导致读取过慢,可通过参数chunksize限制数据块大小。

 

data=pd.read_csv(r'C:\Users\king\Desktop\skiprows_3.csv',chunksize=10000)

这篇关于pandas常用函数学习,从文件读取输出过程中学会处理数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/855864

相关文章

MyBatis常用XML语法详解

《MyBatis常用XML语法详解》文章介绍了MyBatis常用XML语法,包括结果映射、查询语句、插入语句、更新语句、删除语句、动态SQL标签以及ehcache.xml文件的使用,感兴趣的朋友跟随小... 目录1、定义结果映射2、查询语句3、插入语句4、更新语句5、删除语句6、动态 SQL 标签7、ehc

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

Python打包成exe常用的四种方法小结

《Python打包成exe常用的四种方法小结》本文主要介绍了Python打包成exe常用的四种方法,包括PyInstaller、cx_Freeze、Py2exe、Nuitka,文中通过示例代码介绍的非... 目录一.PyInstaller11.安装:2. PyInstaller常用参数下面是pyinstal

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数