Pandas数据分析之数据读写和存储
一、文本格式读写
1.Pandas解析函数
函数 |
描述 |
read_csv |
从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号 |
read_table |
从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符(‘\t’) |
read_fwf |
读取特定宽列格式数据(没有分隔符) |
read_clipboard |
read_table的剪贴板版,读取剪贴板中的数据,将网页转换为表格时很有用 |
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查询结果(使用 SQL Alchemy)读取为pandas的 DataFrame |
read_stata |
读取 Stata 文件格式的数据集 |
read_feather |
读取 Feather 二进制文件格式 |
2.Pandas解析函数参数
解析函数的参数主要有5种类型:
- 索引:将⼀个或多个列当做返回的DataFrame处理,以及是否从⽂件、⽤户获取列名。
- 类型推断和数据转换:包括⽤户定义值转换和⾃定义的缺失值符号列表等。
- ⽇期时间解析:包括组合功能,包括分散在多个列中的⽇期时间信息组合成结果中的单个列。
- 迭代:⽀持对⼤型⽂件分块迭代。
- 不规整数据问题:跳过⾏、⻚脚、注释或其他次要数据(⽐如由成千上万个逗号隔开的数值数据)。
参数 |
描述 |
path |
表示文件系统位置、URL、文件型对象的字符串 |
sep或delimiter |
用于分隔每行字段的字符序列或正则表达式 |
header |
用作列名的行号。默认为0(第一行),如果没有header行则设置为None |
index_col |
用作行索引的列编号或列名。可以是单个名称/数字或由多个名称/数字组成的列表(分层索引) |
names |
用于结果的列名列表,结合header=None使用 |
skiprows |
需要忽略的行数或行号列表,从文件开始处算起(从0开始) |
na_values |
一组用于替换NA的值 |
comment |
在行结尾处分隔注释的字符 |
parse dates |
尝试将数据解析为datetime,默认为False。如果为True,则尝试解析所有列。可以指定一组列号或列名进行解析。如果列表的元素为列表或元组,就会将多个列组合到一起再进行日期解析工作(例如,日期/时间分别位于两个列中) |
keep _date_col |
如果连接多列解析日期,则保持参与连接的列。默认为False。 |
converters |
由列号/列名跟函数之间的映射关系组成的字典。例如{‘foo’: f)会对foo列的所有值应用函数f |
dayfirst |
当解析有歧义的日期时,将其看做国际格式(例如,7/6/2012->June7,2012),默认为False |
date_parser |
用于解析日期的函数 |
nrows |
需要读取的行数(从文件开始处算起) |
iterator |
返回一个TextParser以便逐块读取文件 |
chunksize |
用于选代的文件块的大小 |
skip_footer |
需要忽略的行数(从文件末尾处算起) |
verbose |
打印各种解析器输出信息,比如位于非数值列中缺失值的数量 |
encoding |
用于unicode的文本编码格式。例如,"utf-8"表示用UTF-8编码的文本 |
squeeze |
如果数据经解析后仅含一列,则返回Series |
thousands |
千分位分隔符,如",“或”." |
3.文件读入
(1)HDF5
- HDF5中的HDF指的是分层数据格式(hierarchical data format)。每个HDF5文件都含有一个文件系统式的节点结构,能够存储多个数据集并支持元数据;支持多种压缩模式的即时压缩,更高效的存储重复模式的数据;适用于处理不合适在内存中存储的超大型数据
- HDFStore支持两种存储模式,‘fixed’和’table’。后者通常会更慢,但是支持使用特殊语法进行查询操作
frame = pd.DataFrame({
'a': np.random.randn