zoukankan      html  css  js  c++  java
  • 利用python进行数据分析之数据加载存储与文件格式

      在开始学习之前,我们需要安装pandas模块。由于我安装的python的版本是2.7,故我们在https://pypi.python.org/pypi/pandas/0.16.2/#downloads 此网站上下载的0.16.2版本,下载后解压缩利用dos命令打开对应的文件下,并运行 python setup.py install安装,可能会出现报错:error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27,此刻转到http://www.microsoft.com/en-us/download/confirmation.aspx?id=44266,会自动下载Microsoft Visual C++ Compiler for Python 2.7,下载后安装。然后再运行python setup.py install,就可以正常安装了,安装过程在30s左右即可完成。安装成功后可在idle窗口中

    import pandas

    查看是否引用成功,成功后就可以开始下一步学习。

      输入输出数据通常分为几个大类,读取文本文件和其他更高效的磁盘存储格式,加载数据库中数据,也可以利用web的API操作网络数据资源。

    一、读取文本格式数据

      pandas提供一些将表格数据读取为dataframe对象的函数。

    read_csv 从文件,url,文件型对象中加载带分隔符的数据,默认分隔符为逗号。
    read_table 从文件,url,文件型对象中加载带分隔符的数据,默认分隔符为制表符(' ')。
    read_fwf 读取定宽格式的数据,无分隔符
    read_clipboard 读取剪贴板中数据

     

     

      

      

     

     

    read_csv会为数据分配默认的列名,也可以指定数据的列名如:pd.read_csv('ch06/ex2/csv',names=['a','b','c','d','message'])

    假设你希望将message列作为dataframe的索引,可以通过index_col参数指定message:

    names=['a','b','c','d','message']

    pd.read_csv('ch06/ex2/csv',names=names,index_col='message')

     

     将数据写出到文本格式

      1、利用data_frame的to_csv方法,可以将数据写到一个以逗号分隔的文件中,也可用sep参数指定分隔符,如 data.to_csv()

      2、缺失值写入输出时会被表示为空字符串,可使用na_rep表示为别的标记值。

    手工处理分隔符格式

    对于任何单字符分隔符文件,可以直接使用python内置的csv模块,将任意打开的文件或文件型的对象传给csv.reader:

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

    对这个reader迭代将会为每行产生一个列表,为了使数据合乎需求,需要进行一些手工整理:

    lines=list(csv.reader(open('ch06ex7.csv')))
    header,values=lines[0],lines[1:]
    data_dict={h:v for h,v in zip(header,zip(*values))}

    csv的文件的形式有很多,只需定义csv.dialect的一个子类即可定义出新格式:

    class my_dialect(csv.Dialect):
        lineterminator='
    '
        delimiter=';'
        quotechar='"'
    reader=csv.reader(f,dialect=my_dialect)

    二、JSON数据

    JSON数据已经成为通过http请求在wed浏览器和其他应用程序之间发送数据的标准格式之一,它是一种比表格型文本格式更灵活的数据格式。

    JSON非常接近于有效的python代码,基本类型都有对象,数组,字符串,数值,布尔型以及null。通过json.loads即可将JSON字符串转换为python形式。

    import json
    result=json.loads(obj)

    json.dump则将python对象转换为JSON格式

    三、XML和HML:WEB信息收集

    lxml可以高效可靠的解析大文件,lxml有多个编程接口,首先我们用lxml.html处理HTML,然后再用lxml.objectify做一些XML处理。

    (待续)

    四、二进制数据格式

    实现二进制数据格式存储最简单的方法之一是使用python内置的pickle序列化,pandas对象都有一个用于将数据以pickle形式保存到磁盘上的save方法,然后可用pickle函数pandas.load将数据读回python:

    frame=pd.read_csv('ch06/ec1.csv')
    frame.save('ch06/frame_pickle')
    frame.load('ch06/frame_pickle')

    使用HDF5格式

    HDF5中指的是层次型数据格式,每个HDF5文件都含有一个文件系统式的节点结构,它使你可以储存多个数据集并支持元数据。HDF5支持多种压缩器的即时压缩。

    python中有两个接口处理HDF5,pytable和h5py。

    读取excel文件

    pandas的excelfile类支持读取存储excel中的表格型数据,由于excelfile用到了xlrd和openpyxl包,所以得先安装它们(https://pypi.python.org/pypi/xlrd),通过传入一个xls或xslx文件的路径即可创建一个excelfile实例,存放在某个工作表中的数据可以通过parse读取到dataframe中。

    xls_file=pd.ExcelFile('data.xls')
    table=xls_file.parse('Sheet1')

     五、使用HTML和WEB API

    许多网站都有一些通过JSON或其他格式提供数据的公用API,通过python访问这些API简单推荐的方法是requests包,如下:

    网页信息读取后可进行更高级一步的处理。

    import requests
    url='http://www.baidu.com'
    resp=requests.get(url)
    resp
    import json
    data=json.loads(resp.text)

    六、使用数据库

    具体应用中,数据很少取自文本数据,更多来源与数据库(包括关系型数据库与非关系型数据库)

  • 相关阅读:
    Python开发环境搭建(Windows)
    Pycharm安装第三方库
    Python 更新pip报错:Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问
    centos7.4 yum install报错:Another app is currently holding the yum lock; waiting for it to exit...
    [PySide]在简易在线词典中使用多线程
    三菱PLC——Dx Developer的使用
    关于BeautifulSoup编码的一些问题
    超简单的Ghost安装双系统方法
    《Visual C++ 2008入门经典》学习笔记(1)——数据类型
    win下硬盘安装ubuntu(无需光驱、U盘)
  • 原文地址:https://www.cnblogs.com/splended/p/5184442.html
Copyright © 2011-2022 走看看