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

相关文章

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统