1. 文本格式数据的读写
1.1 将表格型数据读取为 DataFrame 的 pandas 解析函数
函数 |
描述 |
read_csv |
从文件、URL或文件型对象读取分隔好的数据,逗号是默认分隔符 |
read_table |
从文件、URL或文件型对象读取分隔好的数据,制表符(’\t’)是默认分隔符 |
read_fwf |
从特定宽度格式的文件中读取数据(无分隔符) |
read_clipboard |
read_table 的剪贴板版本,在将表格从 Web 页面上转换成数据时有用 |
read_excel |
从 Excel 的 XLS 或 XLSX 文件中读取表格数据 |
read_hdf |
读取用 pandas 存储的 HDF5 文件 |
read_html |
从 HTML 文件中读取所有表格数据 |
read_json |
从 JSON(JavaScript Object Notation) 字符串中读取数据 |
read_msgpack |
读取 MessagePack 二进制格式的 pandas 数据 |
read_pickle |
读取以 Python pickle 格式存储的任意对象 |
read_sas |
读取存储在 SAS 系统中定制存储格式的 SAS 数据集 |
read_sql |
将 SQL 查询结果(使用 SQLAlchemy)读取为 pandas 的 DataFrame |
read_stata |
读取 Stata 格式的数据集 |
read_feather |
读取 Feather 二进制格式 |
1.2 一些 read_csv/read_table 函数参数
参数 |
描述 |
path |
表明文件系统位置的字符串,URL或文件型对象 |
sep 或 delimiter |
用于分隔每行字段的字符序列或正则表达式 |
header |
用作列名的行号,默认是0(第一行),如果没有列名的话,应该为 None |
index_col |
用作结果中行索引的列号或列名,可以是一个单一的名称/数字,也可以是一个分层索引(列号或列名组成的列表) |
names |
指定结果的列名列表,和 header=None 一起用 |
skiprows |
从文件的开头处起,需要跳过的行数或行号列表 |
na_values |
需要用 NA 值替换的值序列,使用字典形式,key 指定列,value指定值 |
comment |
在行结尾处分割注释的字符 |
parse_dates |
尝试将数据解析为 datetime,默认是 False。如果为 True,将尝试解析所有的列。也可以指定列号或列名列表来进行解析。如果列表的元素是元组或列表,将会把多个列组合在一起进行解析(例如日期/时间将拆分为两列) |
keep_date_col |
如果连接列到解析日期上,保留被连接的列,默认是 False |
converters |
包含列名称映射到函数的字典(例如 {‘foo’:f} 会将函数 f 应用到 ‘foo’ 列) |
dayfirst |
解析非明确日期时,按照国际格式处理(例如 7/6/2012–>June/7/2012),默认为 False |
date_parser |
用于解析日期的函数 |
nrows |
从文件开头处读入的行数 |
iterator |
返回一个 TextParser 对象,用于零散地读入文件 |
chunksize |
用于迭代的块大小 |
skip_footer |
忽略文件尾部的行数 |
verbose |
打印各种解析器输出的信息,比如位于非数值列中的缺失值数量 |
encoding |
Unicode 文本编码 |
squeeze |
如果解析数据值包含一列,返回一个 Series |
thousands |
千位分隔符 |
1.3 分块读入文本文件
- 只读取一小部分行,指明 nrows 参数即可
pd.read_csv('name.csv', nrows=5)
- 分块读入文件,指定 chunksize 作为每一块的行数,返回的为 TextPaser 对象,允许根据 chunksize 遍历文件并进行操作:
chunker = pd.read_csv('name.csv',