Pandas之read_csv()函数中文详解

从事数据分析工作,经常需要进行数据清洗,pandas库是数据分析最常用的库之一。本文根据官方文档对pandas的read_csv()函数进行说明。read_csv()函数是用来读取csv文件的内容进而转化为易于操作的数据结构dataframe的常用函数。具有十分强大的功能,可以传入多种参数,下面就根据官方文档以及自己的实践,详细介绍各个参数,对于不易理解的参数会附上示例代码。

pandas.read_csv(filepath_or_buffer, 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, 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, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

filepath_or_buffer:任何有效的字符串路径。

有效的字符串路径包括文件路径对象类文件对象。文件路径对象包括csv文件的绝对路径、相对路径和URL,如本地的文件路径就可以写成file://localhost/path/to/table.csv;类文件对象则是先对csv文件进行IO封装,再使用read_csv()函数进行调用,比如说Python内置的open()函数。以下给出示例代码。

from pandas import read_csv

# 文件路径对象
result1 = read_csv('table.csv')  # 相对路径
result2 = read_csv('E://demo/table.csv')  # 绝对路径
result3 = read_csv('file://localhost/E://demo/table.csv')  # URL

# 类文件对象
f = open('table.csv')
result4 = read_csv(f)

sep:str,default ','.

一般csv默认逗号为分隔符,如果想使用其他字符对csv文件进行分隔可以指定为其他的字符,此外,还可以指定正则表达式为分隔符。

delimiter:str,默认为None。sep的别名。

header:int,list of int, default 'infer'.

指定DataFrame的某行为列标签,默认为第一行,等同于header=0。如果header=1,则第二行选为列标签。特别的,如果header=None,则列名为0,1,2,3......如果设置header=[0,1,2],则将0,1,2中的值组合为列名。注意:header=0表示数据的第一行而不是文件的第一行,因为有时我们会跳过空白行,此时header=0不会指定跳过的空白行作为列标签。

namesarray-like, optional.

可以将header设为None然后传入一个类数组结构自定义列标签。

index_colint, str, sequence of int / str, or False, default None.

与header类似,指定列作为Dataframe的行标签,可以选择多列组合为行标签。

usecolslist-like or callable.

可以选择想要返回的列,可以按列数取,也可以按列名取。

squeezebool, default False.

如果参数数据只包含一列,则返回的是一个Series。

prefixbool, default True.

当header=None时给列标签添加前缀。如:prefix='X',则列标签为['X1', 'X2', 'X3'......]。

mangle_dupe_colsbool, default True.

区分重复的列,示例如下:

# csv文件中的第一行为['x', 'x', 'x']
file.columns == ['x', 'x', 'x']
# 如果mangle_dupe_cols是True
if mangle_dupe_cols is True:
    # dataframe的第一行是['x', 'x.1', 'x.2']
    dataframe.columns = ['x', 'x.1', 'x.2']
# 如果mangle_dupe_cols是False
else:
    # dataframe的第一行是['x'],x对应csv文件中的第三列,因为后面的列会将前面的列覆盖掉
    dataframe.columns = ['x']

dtypeType name or dict of column -> type.

设置数据类型,可以整个data设置为string,也可以按列设置。当converters函数被指定,则会优先使用converters中指定的数据类型。示例如下:

from pandas import read_csv

# 为整个data集指定数据类型
read_csv('table.csv', dtype=str)
# 为指定列设置数据类型
read_csv('table.csv', dtype={'r1': str, 'r2': int})

convertersdict.

为指定列设置数据类型,Keys可以是字符串(列名),也可以是整型(列的位置)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章