Python pandas中read_csv参数示例详解
在Python pandas中,我们经常使用read_csv函数读取csv格式文件。但是,由于csv文件格式的多样性,我们需要掌握一些参数知识,以便实现更精准的数据读取。
参数说明
read_csv函数常用参数如下:
-
filepath_or_buffer: 必选参数,表示文件的路径或URL地址;
-
sep: 可选参数,表示csv文件中的字段分隔符,默认为',';
-
delimiter: 可选参数,和sep参数作用相同,指定csv文件的分隔符;
-
header: 可选参数,表示哪一行作为列名,默认为0,即第一行;
-
names: 可选参数,表示自定义列名,如果指定了就会替代header参数;
-
index_col: 可选参数,表示使用哪一列作为索引列,默认为None,即不使用任何列作为索引列;
-
usecols: 可选参数,表示需要读取哪些列,可以使用列名或列索引号;
-
dtype: 可选参数,表示每一列的数据类型;
-
skiprows: 可选参数,表示需要跳过文件的前几行,默认为0;
-
skipfooter: 可选参数,表示需要跳过文件的末尾几行,默认为0;
-
na_values: 可选参数,表示读取csv文件时将指定的缺失值识别为NaN;
-
comment: 可选参数,表示注释符号,默认为None,即没有注释;
-
encoding: 可选参数,表示文件的编码方式,常用的有'utf-8'、'gbk'等;
-
quoting: 可选参数,表示如何处理字段中的引号,常用的有0、1、2、3。
示例说明
示例一
我们有一个名为data.csv的文件,文件中的分隔符是';',第一行为列名,第二列为数字,第三列为日期,现在,我们要将这个文件读入一个DataFrame对象中。可以使用如下代码:
import pandas as pd
df = pd.read_csv('data.csv', sep=';', header=0, index_col=None, usecols=[0, 1, 2],
parse_dates=['日期'], dtype={'数字': float})
print(df)
解析:
-
header=0
指定第一行为列名; -
index_col=None
表示不使用任何列作为索引列; -
usecols=[0, 1, 2]
表示只读取第1、2、3列; -
parse_dates=['日期']
表示将第3列解析成日期格式;
示例二
在本例中,我们将演示如何跳过数据文件的前两行。可以使用如下代码:
import pandas as pd
df = pd.read_csv('data.csv', sep=',', header=0, index_col=None, usecols=[0,1],
skiprows=2, dtype={'数字': float})
print(df)
解析:
-
header=0
指定第一行为列名; -
index_col=None
表示不使用任何列作为索引列; -
usecols=[0, 1]
表示只读取第1、2列; -
skiprows=2
表示跳过文件的前两行。
示例三
在本例中,我们将演示如何自定义文件中的列名。可以使用如下代码:
import pandas as pd
df = pd.read_csv('data.csv', sep=',', header=None, names=['学号', '姓名', '年龄', '性别'],
index_col=['学号'], usecols=[0,1,2,3], dtype={'年龄': int})
print(df)
解析:
-
header=None
表示没有列名; -
names=['学号', '姓名', '年龄', '性别']
表示指定自定义列名; -
index_col=['学号']
表示使用第一列作为索引列; -
usecols=[0,1,2,3]
表示只读取前四列; -
dtype={'年龄': int}
表示将年龄列的数据类型设置为整型。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python pandas中read_csv参数示例详解 - Python技术站