美文网首页数据处理我爱编程
数据加载、存储于文件格式

数据加载、存储于文件格式

作者: 昱灬岩 | 来源:发表于2016-05-08 14:35 被阅读358次

    数据加载、存储于文件格式

    读写文本格式的数据

    pandas 提供了一些用于将表格型数据读取为 DataFrame 对象的函数,其中 read_csv 和 read_table 最为常用。

    pandas 中的解析函数

    函数 说明
    read_csv 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为逗号
    read_table 从文件、URL、文件型对象中加载带分隔符的数据。默认分隔符为制表符("\t")
    read_fwf 读取定宽列格式数据(也就是说,没有分隔符)
    read_clipboard 读取剪贴板中的数据,可以看做read_table的剪贴板版。在将网页转换为表格时很有用

    read_csv 和 read_table 函数的参数

    参数 说明
    path 表示文件系统位置、URL、文件型对象的字符串
    sep 或 delimiter 用于对行中各字段进行拆分的字符序列或正则表达式
    header 用作列名的序号
    index_col 用作行索引的编号
    names 用于结果的列名列表,结合header=None
    skiprows 需要忽略的行数(从文件开始出算起),或需要跳过的行号列表(从0开始)
    na_values 一组用于替换NA的值
    comment 用于将注释信息从行尾拆分出去的字符(一个或多个)
    parse_dates 尝试将数据解析为日期,默认为False。如果为True,则尝试解析所有列。
    keep_date_col 如果连接多列解析日期,则保持参与链接的列。默认为Fal。
    converters 由列号/列名跟函数之间的映射关系组成的字典。例如,{'foo':f}会对foo列的所有值应用函数f。
    dayfirst 当解析有歧义的日期时,将其看做过几个是(例如,7/6/2015 -> June 7,2015)。默认为False
    date_parser 用于解析日期的函数
    nrows 需要读取的行数
    iterator 返回一个TextParser以便逐块读取文件
    chunksize 文件块的大小
    skip_footer 需要忽略的行数(从末尾算起)
    verbose 打印各种解析器输出信息
    encoding 用于Unicode的文本编码格式。
    squeeze 如果数据经解析后仅含一列,则返回Series
    thousands 千分位分隔符,如“,”或“.”

    逐行读取文本文件

    可以设置 nrows 参数和 chunksize 参数实现逐行读或逐块读。

    将数据写出到文本格式

    利用 DataFrame 的 to_csv 方法,可以将数据写到一个以逗号分隔的文件中。

    手工处理分隔符格式

    大部分存储在磁盘上的表格型数据都能用 pandas.read_table 进行加载。也可以直接使用 Python 内置的 csv 模块,将任意已打开的文件或文件型对象传给 csv.reader:

    import csv
    f = open('ch06/ex7.csv')
    
    reader = csv.reader(f)
    

    对这个 reader 进行迭代将会为每行产生一个元组(并溢出了所有的行号):

    for line in reader:
        print line
    Out:
    ['a','b','c']
    ['1','2','3']
    

    JSON 数据

    通过 json.loads 可将 JSON 字符串转换为 Python 形式;通过 json.dump 则将 Python 对象转换成 JSON 形式。

    XML 和 HTML:Web 信息收集

    利用 Python 中的 lxml 可以高效且可靠地解析大文件。利用 lxml.html 处理 HTML,然后在用 lxml.objectify 做一些 XML 处理。

    二进制数据格式

    pandas 中的 save 方法利用了 Python 内置的 pickle 序列化。

    使用 HDF5 格式

    HDF5 是一个流行的工业级库,它是一个 C 库,带有许多语言接口,如 Java、Python、MATLAB 等。HDF5 中的 HDF 指的是层次性数据格式(hierarchical data format)。

    Python 冲的 HDF5 库有两个接口(即 ==PyTables 和 h5py==),它们鸽子采用了不同的问题解决方式。h5py 提供了一种直接而高级的 HDF5 API 访问接口,而 PyTables 则抽象了 HDF5 的许多细节以提供多种灵活的数据容器、表索引、查询功能以及对核外计算技术的某些支持。

    读取 Microsoft Excel 文件

    pandas 的 ExcelFile 类支持读取存储在 Excel 中的表格型数据。由于 ExcelFile 用到了 xlrd 和 openpyxl 包,所以先得安装它们才行。

    xls_file = pd.ExcelFile('data.xls')
    table = xls_file.parse('Sheet1')  #返回 DataFrame 
    

    使用 HTML 和 Web API

    使用数据库

    pandas 有一个 read_frame 函数(位于 pandas.io.sql 模块)。

    import pandas.io.sql as sql
    sql.read_frame('select * from test',con)
    

    存取 mongoDB 中的数据

    import pymongo
    con = pymongo.Connection('localhost',port=27017)
    

    存储在 MongoDB 中的文档被组织在数据库的集合中。可以通过集合的 save 方法存入集合中。

    tweets = con.db.tweets
    for tweet in data['results']:
        tweets.save(tweet)
    

    如果想从该集合中取出tweet,可以用集合的 find 方法。

    相关文章

      网友评论

        本文标题:数据加载、存储于文件格式

        本文链接:https://www.haomeiwen.com/subject/wopsrttx.html