详解Pandas读取csv文件时2个有趣的参数设置

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: Pandas其提供了从数据读取、数据预处理到数据分析以及数据可视化的全流程操作。其中,在数据读取阶段,应用pd.read_csv读取csv文件是常用的文件存储格式之一。今天,本文就来分享关于pandas读取csv文件时2个非常有趣且有用的参数。

640.png

打开jupyter lab,键入pd.read_csv?并运行即可查看该API的常用参数注解,主要如下:


640.png


其中大部分参数相信大家都应该已经非常熟悉,本文来介绍2个参数的不一样用法。


给定一个模拟的csv文件,其中主要数据如下:


640.png



可以看到,这个csv文件主要有3列,列标题分别为year、month和day,但特殊之处在于其分隔符不是常规的comma,而是一个冒号。另外也显而易见的是这三列拼凑起来是一个正常的年月日的日期格式。所以今天本文就来分享如何通过这两个参数来实现巧妙的加载和自动解析。


01 sep设置None触发自动解析


既然是csv文件(Comma-Separated Values),所以read_csv的默认sep是",",然而对于那些不是","分隔符的文件,该默认参数下显然是不能正确解析的。此时,当然可以简单的通过传入正确的分隔符作为sep参数来实现正确加载,但如果文件的分隔符是未知的呢?实际上,我们可以无需传入分隔符,而交由解析器自动解析。

查看pd.read_csv中关于sep参数的介绍,可以看到如下说明:


640.png


其中,值得注意的有两点:

  • sep默认为",",如果传入None,则C引擎由于不能自动检测和解析分隔符,所以Python引擎将会自动应用于解析和检测(当然,C引擎的解析速度要更快一些,所以实际上这两种解析引擎是各有利弊)
  • 如果sep传入参数超过1个字符,则其将会被视作正则表达式。实际上这也是一个强大的功能,但应用场景不如前者实用


基于上述对sep参数的理解,为了正确加载和解析前述的示例文件,只需将传入sep=None即可:


640.png


02 parse_dates实现日期多列拼接


在完成csv文件正确解析的基础上,下面通过parse_dates参数实现日期列的拼接。首先仍然是查看API文档中关于该参数的注解:


640.png


其中,可以看出parse_dates参数默认为False,同时支持4种自定义格式的参数的传递,包括:

  • 传入bool值,若传入True值,则将尝试解析索引列
  • 传入列表,并将列表中的每一列尝试解析为日期格式;
  • 传入嵌套列表,并尝试将每个子列表中的所有列拼接后解析为日期格式;
  • 出啊如字典,其中key为解析后的新列名,value为原文件中的待解析的列索引的列表,例如示例中{'foo': [1, 3]}即是用于将原文件中的1和3列拼接解析,并重命名为foo


基于上述理解,完成前面的特殊csv文件中三列拼接解析为日期的需求就非常容易,即将0/1/2列拼接解析就可以了。实现如下


640.png


不得不说,pandas提供的这些函数的参数可真够丰富的了


640.png

目录
相关文章
|
7月前
|
存储 JSON 关系型数据库
Pandas载入txt、csv、Excel、JSON、数据库文件讲解及实战(超详细 附源码)
Pandas载入txt、csv、Excel、JSON、数据库文件讲解及实战(超详细 附源码)
149 0
|
3月前
|
数据采集 数据挖掘 数据处理
使用Python和Pandas处理CSV数据
使用Python和Pandas处理CSV数据
145 5
|
4月前
|
Python
pandas参数设置小技巧
pandas参数设置小技巧
|
4月前
|
存储 JSON 数据格式
Pandas 使用教程 CSV - CSV 转 JSON
Pandas 使用教程 CSV - CSV 转 JSON
44 0
|
4月前
|
Python
[pandas]从多个文件中构建dataframe
[pandas]从多个文件中构建dataframe
|
7月前
|
数据挖掘 索引 Python
Python 教程之 Pandas(15)—— 使用 pandas.read_csv() 读取 csv
Python 教程之 Pandas(15)—— 使用 pandas.read_csv() 读取 csv
84 0
|
7月前
|
数据挖掘 数据处理 索引
使用Pandas从Excel文件中提取满足条件的数据并生成新的文件
使用Pandas从Excel文件中提取满足条件的数据并生成新的文件
233 1
|
7月前
|
人工智能 数据挖掘 Python
Python pandas中read_csv函数的io参数
Python pandas中read_csv函数的io参数
76 5
|
7月前
|
数据采集 数据挖掘 数据处理
Python数据分析实战:使用Pandas处理Excel文件
Python数据分析实战:使用Pandas处理Excel文件
260 0
|
7月前
|
数据挖掘 索引 Python
Pandas read_csv 参数详解
Pandas的`read_csv`函数用于从CSV文件中加载数据,转换为DataFrame。本文详述了其常用参数,如`filepath_or_buffer`(接受路径、URL或文件对象)、`sep`/`delimiter`(字段分隔符,默认为逗号)、`header`(列名行号,默认0)、`names`(自定义列名)、`index_col`(设定索引列)、`usecols`(选择读取的列)、`skiprows`/`nrows`/`skipfooter`(跳过或只读指定行数)和`parse_dates`(解析日期列)。理解这些参数有助于高效处理CSV数据。