Pandas函数学习—— pandas.read_csv()函数
1、首先,介绍csv格式的文件:
CSV文件是一个纯文本文件,最早用在简单的数据库里,其格式简单,具备很强的开放性,非常容易被导入各种PC表格及数据库,比如Excel表格等。
CSV文件中每行相当于一条记录(相当于数据表中的一行),用 “,”(半角逗号)分割每行的不同字段。举例如下:
例:
1, 23, 32,12
2, 44, 12, 56
对应Excel表格,CSV文件中的一行对应Excel的一行,CSV同一行中的半角逗号相当于Excel表格同一行分割不同单元格的竖线。
2、介绍pandas.read_csv()函数。
官方调用形式介绍:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
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=False, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, skip_footer=0, doublequote=True, delim_whitespace=False, as_recarray=False, compact_ints=False, use_unsigned=False, low_memory=True, buffer_lines=None, memory_map=False, float_precision=None)
参数:
filepath_or_buffer: str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO)
文件路径或数据缓存地址。
sep:str, default ‘,’
指定分隔符。如果不指定参数,默认使用逗号分隔。如果分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器,并忽略数据中的逗号。正则表达式例子:'\r\t'。
delimiter: str, default None
定界符,备选分隔符(如果指定该参数,则sep参数失效)。
header:int or list of ints, default ‘infer’
指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,否则设置为None。如果明确设定header=0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉(例如本例中的2;本例中的数据1,2,4行将被作为多级标题出现,第3行数据将被丢弃,dataframe的数据从第5行开始。)。注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。
names : array-like, default None
用于结果的列名列表,如果数据文件中没有列标题行,就需要执行header=None。默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True。
index_col : int or sequence or False, default None
用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。
如果文件不规则,行尾有分隔符,则可以设定index_col=False 来是的pandas不适用第一列作为行索引。
usecols : array-like, default None
返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。
举例如下:
import pandas as pd
header = ['user_id', 'item_id', 'rating', 'timestamp']
df = pd.read_csv("D:/u.data",sep = '\t',names = header)