大数据与编程语言的有什么联系?

    作者:Crossin更新于: 2019-12-25 09:16:17

    PythonExcel 不得不说的事情。大数据的用法倾向于预测分析、用户行为分析或某些其他高级数据分析方法的使用。

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道。

    大数据与编程语言的有什么联系_大数据视频_数据分析课程_数据结构视频_课课家

    如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行处理,Excel 也支持此格式。但标准的 Excel 文件(xls/xlsx)具有较复杂的格式,并不方便像普通文本文件一样直接进行读写,需要借助第三方库来实现。

    常用的库是 python-excel 系列:

    • xlrd、xlwt、xlutils
    • xlrd - 读取 Excel 文件
    • xlwt - 写入 Excel 文件
    • xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等

    尽管这是目前被用得最多的 Excel 库,我还是很想吐槽为什么这三个包不能放在一个模块里……另外它们有个缺陷,就是只能处理 xls 文件。如果你想用新版本的 xlsx,可以考虑 openpyxl 和 xlsxwriter。

    非诚勿扰:正在学习python的小伙伴或者打算学习的,可以私信小编“01”领取资料!

    不过今天只说说这三个。

    安装

    安装的方法没啥特别的,只是得装三遍。可以下载安装包、下载代码压缩包、或者通过 pip 等。

    如果安装过之前推荐的 anaconda,那么就已经有了 xlrd 和 xlwt,但 xlutils 没有附带在安装包中,使用时仍需另行安装。

    读取

    结合一段简单的代码来看:

    1. import xlrd 
    2. # 打开 xls 文件 
    3. book = xlrd.open_workbook("test.xls"
    4. print "表单数量:", book.nsheets 
    5. print "表单名称:", book.sheet_names() 
    6. # 获取第1个表单 
    7. sh = book.sheet_by_index(0) 
    8. print u"表单 %s 共 %d 行 %d 列" % (sh.name, sh.nrows, sh.ncols) 
    9. print "第二行第三列:", sh.cell_value(1, 2) 
    10. # 遍历所有表单 
    11. for s in book.sheets(): 
    12.     for r in range(s.nrows): 
    13.         # 输出指定行 
    14.         print s.row(r) 

    测试文件:

    输出结果:

    1. 表单数量: 2  
    2. 表单名称: [u'Group.A', u'Group.B']  
    3. 表单 Group.A 共 7 行 3 列  
    4. 第二行第三列: 15.0  
    5. [text:u'Rank', text:u'Team', text:u'Points']  
    6. [number:1.0, text:u'Brazil', number:15.0]  
    7. [number:2.0, text:u'Russia', number:12.0]  
    8. ... 

    常用的方法:

    • open_workbook 打开文件
    • sheet_by_index 获取某一个表单
    • sheets 获取所有表单
    • cell_value 获取指定单元格的数据

    写入

    还是看代码:

    1. import xlwt 
    2. # 创建 xls 文件对象 
    3. wb = xlwt.Workbook() 
    4. # 新增一个表单 
    5. sh = wb.add_sheet('A Test Sheet'
    6. # 按位置添加数据 
    7. sh.write(0, 0, 1234.56) 
    8. sh.write(1, 0, 8888) 
    9. sh.write(2, 0, 'hello'
    10. sh.write(2, 1, 'world'
    11. # 保存文件 
    12. wb.save('example.xls'

    生成文件:

    常用的方法:

    • Workbook 创建文件对象
    • add_sheet 新增一个表单
    • write 在指定单元格写入数据

    修改

    很遗憾,并没有直接修改 xls 文件的方法。通常的做法是,读取出文件,复制一份数据,对其进行修改,再保存。

    在复制时,需要用到 xlutils 中的方法。

    1. from xlrd import open_workbook 
    2. from xlutils.copy import copy 
    3. # 打开文件 
    4. rb = open_workbook("example.xls"
    5. # 复制 
    6. wb = copy(rb) 
    7. # 选取表单 
    8. s = wb.get_sheet(0) 
    9. # 写入数据 
    10. s.write(0, 1, 'new data'
    11. # 保存 
    12. wb.save('example.xls'

    修改后文件:

    特别要注意的是,选取读取表单时,要使用 sheet_by_index,而在选取写入表单时,则要用 get_sheet。不要问我为什么,我也很想知道这么设定的用意何在……

    时间转换

    如果表单中有时间格式的数据,通过处理之后,你会发现时间数据出了差错。

    输出单元格内容:

    1. [number:8888.0, xldate:42613.0] 

    因为这里 xldate 有自己的格式定义。如果要使用正确的格式,必须转换:

    1. new_date = xlrd.xldate.xldate_as_datetime(date, book.datemode) 

    date 是对应单元格的数据,book 是打开的文件对象。

    另外,在打开文件时,加上参数 formatting_info=True,可以保证在时间数据在 copy 时保持原样。

    写入时间数据,则可通过此方法创建 excel 的时间对象:

    1. xlrd.xldate.xldate_from_datetime_tuple 

    或者通过 xlwt.easyxf 指定时间格式:

    1. style = xlwt.easyxf(num_format_str='D-MMM-YY')ws.write(1, 0, datetime.now(), style) 

    具体细节及更多功能这里不展开说明。

    以上便是 Python 操作 Excel 文件的一些基本方法。实际使用过程中遇到问题或者需要了解更多功能,永远记住两个词:

    • RTFM、STFW
    • :)
      大数据(big data)是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据有五大特点,即大量(Volume)、高速(Velocity)、多样(Variety)、低价值密度(Value)、真实性(Veracity)。它并没有统计学的抽样方法,只是观察和追踪发生的事情。

课课家教育

未登录