Pandas数据的加载[2020年3月]
numpy 帮我们处理数值型数据,pandas能够处理多种类型的数据,这里只写5种常用的,其它请转官方文档
1.1 read_csv/read_table
1.1.1 read_csv
import pandas as pd
#读取csv 常用参数 一般来说我们应该都是直接read吧😂
pd.read_csv(filepath_or_buffer,sep,delimiter,delim_whitespace,header,names,index_col,usecols,dtype,skiprows)
参数 | 注释 |
---|---|
filepath_or_buffer | 文件的路径或者地址,url,或者类似文件的对象,当是类似文件对象的时候,我们使用read()方法引用对象。 |
sep | 默认的分割符“,” |
delimiter | 可选择的分割符,可以自己定义,设置时sep不起作用 |
delim_whitespace | 指定’ ’ or '\t’为分割符,默认False,启用设置为true,设置为true时,delimiter不起作用 |
header | 1、指定行作为列名和数据的开始,没有列名等同于header=0,如果存在列名,等同于header=None,(这应该是不使用header的效果); 2、参数可以为list,这时选取多行作为列名;3、当skip_blank_lines=True时,默认时ture,header =0 是数据开始的,而不是文件的第一行。 |
names | 自定义列名,需要设置header=None |
index_col | 指定那几列作为行索引,参数可以是列名或者列的序号,当设置index_col=False时,pandas不会选取第一列作为索引,eg: 每行末尾有不合适的分割符(没动) |
usecols | 选取使用的列 |
dtype | 加载的数据类型或者每一列的数据类型,需要传字典。 |
skiprow | 跳过0-当前行 |
1.1.2 read_table
与read_csv 类似,常用的参数除了sep的默认值不一样,其他的基本相同,我们可以用read_csv读取text文件,这是设置分割符为`\t`即可。
import pandas as pd
#读取text 常用参数 pd.read_table(filepath_or_buffer,sep,delimiter,delim_whitespace,header,names,index_col,usecols,dtype)
1.2 read_excel
把excel文件转换成DataFrame类型
read_excel(io,sheet_name=0,header=0,names=None,index_col=None,use_cols=None,dtype=None,skip_rows)
#空值这几个也不是很常用
na_values 、keep_default_na、na_filter
参数 | 注释 |
---|---|
io | 文件的路径或者地址,url,或者类似文件的对象,当是类似文件对象的时候,我们使用read()方法引用对象。 |
sheet_name | 可以是中文名称,也可以是位置序号 |
header | 选取第几行做为列名,默认0 |
names | 自定义列名,需要设置header=None |
index_col | 默认空,传入列表,会生成聚合索引,索引取决于选择的列 |
use_col | 选取使用的列,可以是位置序号也可以是列名称 |
skiprows | 过0-当前行 |
na_values | 默认None,设定把什么样的数字转换成nan |
keep_default_na | ture 启用na_values,None不启用na_values |
na_filter | 默认ture,查找缺失值,在没有缺失值的文件中可以关闭,可以加快速度。 |
1.3 read_json
pandas.read_json(path_or_buf=None, orient=None, typ='frame', dtype=None, convert_axes=None, convert_dates=True, keep_default_dates=True, numpy=False, precise_float=False, date_unit=None, encoding=None, lines=False, chunksize=None, compression='infer')
参数 | 注释 |
---|---|
path_or_buf | JSON 字符串,路径或者类似文件的对象,当是类似文件对象的时候,我们使用read()方法引用对象。 |
orient | json的类型,我们知道json有多种嵌套方式,如下表所示;当typ= series,可选参数为:{‘split’,‘records’,‘index’},默认是index;当typ = frame,可选参数为:{‘split’,‘records’,‘index’, ‘columns’,‘values’, ‘table’},默认是columns.此时index必须是唯一的。注:0.23.0加入的’table’ |
typ | 是转换成Series或者frame,默认是frame |
dtype | bool或者dict,默认None, 当为true时,会自行推测数据类型并转换。为None时,原样输入,对于orient=‘table’,默认为true,(这里存有疑问🤔️,20200315) 注:0.25.0不应用于orient=‘table’ |
convert_axes | 尝试做适当的轴变换,默认None, |
convert_dates | bool或者字符串列表,默认true.转换也写类似时间的列。 |
keep_default_dates | 如果解析时间,解析默认的类似时间的列。 |
numpy | 1.0.0 开始废弃 |
precise_float | 当把字符串类型转换为数值可以使用高精度。默认:False,采用低精度,提高速度。 |
date_unit | 可以认为是时间精度设置,默认none,可传入 ‘s’, ‘ms’, ‘us’ or ‘ns’ 设置时间精度。 |
encoding | 字符编码,默认‘utf-8’ |
lines | bool,默认none,把每一行当作一个json对象读入。 |
chunksize | 当line为true是才可传参,详见官方。注:0.21.0 |
compression | 实时从硬盘解压数据。可选参数{‘infer’, ‘gzip’, ‘bz2’, ‘zip’, ‘xz’, None},默认:‘infer’,跟据文件的后缀名如:gzip, bz2, zip or xz,其他的不解压。如果使用’zip’,这个压缩包中要至少含有一个文件。设置为:none 不解压。 |
orient 样式
参数 | 类型 |
---|---|
split | dict like {index -> [index], columns -> [columns], data -> [values]} |
records | list like [{column -> value}, … , {column -> value}] |
index | dict like {index -> {column -> value}} |
columns | dict like {column -> {index -> value}} |
values | just the values array |
1.4 read_clipboard
read_clipboard是从剪切板获取数据,默认参数sep=‘s+’,表示一个或多个空格,其它和read_csv一致。
1.5 read_sql
#提取SQL结果集或者表
pandas.read_sql(sql, con, index_col=None, coerce_float=True, params=None, parse_dates=None, columns=None, chunksize=None)
参数 | 类型 |
---|---|
sql | SQL语句或者表名 |
con | 数据库链接,用过Python连接过其它数据库应该很好理解。 |
index_col | 默认为空,索引的列名,一个或者list. |
coerce_float | 将非字符串、非数字对象的值转换为浮点型 |
params | 这个应该是把参数传到SQL里面,在写SQL的时候用参数去写。【存疑】 |
parse_dates | 要转换成日期的列 |
columns | 设置列名,只有在读表的时候才能用。 |
chunksize | 返回一个迭代器,指定每次的行数。 |