python之路13调试点滴

25 篇文章 0 订阅
15 篇文章 1 订阅

冰冻三尺非一日之寒

读EXCEL-XLRD

Python语言中,读取Excel的扩展工具。
(意为:xls文件read库,只能读。
若写入,要用xlwt,意为:xls文件write写入库。)
可以实现指定表单、指定单元格的读取。
一、安装xlrd模块

到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

二、使用介绍

1、导入模块

  import xlrd

2、打开Excel文件读取数据

   data = xlrd.open_workbook('excelFile.xls')

3、使用技巧

    获取一个工作表



    table = data.sheets()[0]          #通过索引顺序获取

    table = data.sheet_by_index(0) #通过索引顺序获取


    table = data.sheet_by_name(u'Sheet1')#通过名称获取

    获取整行和整列的值(数组)

  
table.row_values(i)

     table.col_values(i)

    获取行数和列数

  
nrows = table.nrows

    ncols = table.ncols

    循环行列表数据
    for i in range(nrows ):
    print table.row_values(i)

单元格
cell_A1 = table.cell(0,0).value

cell_C4 = table.cell(2,3).value

使用行列索引
cell_A1 = table.row(0)[0].value

cell_A2 = table.col(1)[0].value

简单的写入
row = 0

col = 0

类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
ctype = 1 value = ‘单元格的值’

xf = 0 # 扩展的格式化

table.put_cell(row, col, ctype, value, xf)

table.cell(0,0) #单元格的值’

table.cell(0,0).value #单元格的值’

感谢:http://baike.baidu.com/link?url=fd5M2ZO_W-ktaGJOLO7mpqs3BmhZc1Ek0LRrmtiddDLnO9hv8kCcU8qoVnTqcmCni3Z3VOBSnjUCdKWX_MvdP_

正则表达式替换:

import re
http://www.crifan.com/python_re_sub_detailed_introduction/

排序

对列表使用sort()排序,如何得到对应元素的索引?
比如对a = [3,4,1,7,2]用a.sort()排序得到a = [1,2,3,4,7],如何得到排序后的数组元素的索引(反映位置变化)
在这个例子里应该是[2,4,0,1,3].
1.

>>> a = [3,4,1,7,2]
>>> sorted(enumerate(a), key=lambda x:x[1])
[(2, 1), (4, 2), (0, 3), (1, 4), (3, 7)]
[index for index, value in sorted(enumerate(a), key=lambda x:x[1])]
[2, 4, 0, 1, 3]

  1. a = [3,4,1,7,2]
    In [2]: enumerate(a)
    Out[2]:
    In [3]: list(enumerate(a))
    Out[3]: [(0, 3), (1, 4), (2, 1), (3, 7), (4, 2)]
    In [4]: from operator import itemgetter
    In [5]: sorted(enumerate(a), key=itemgetter(1))
    Out[5]: [(2, 1), (4, 2), (0, 3), (1, 4), (3, 7)]
    In [6]: [index for index, value in sorted(enumerate(a), key=itemgetter(1))]
    Out[6]: [2, 4, 0, 1, 3]

和上面匿名函数类似
3.

In [7]: import numpy as np

In [8]: np.argsort([3,4,1,7,2])
Out[8]: array([2, 4, 0, 1, 3])

4.

>>> a = [3, 4, 1, 7, 2]
>>> sorted(xrange(len(a)), key=a.__getitem__)
[2, 4, 0, 1, 3]

DateFrame

pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是一种数据组织方式,这么说你可能无法从感性上认识它,举个例子,你大概用过Excel,而它也是一种数据组织和呈现的方式,简单说就是表格,而在在pandas中用DataFrame组织数据,如果你不print DataFrame,你看不到这些数据.

  1. 首先是引入pandas和numpy,这是经常配合使用的两个包,pandas依赖于numpy,引入以后我们可以直接使用np/pd来表示这个两个模块
    import numpy as np
    import pandas as pd

  2. 先创建一个时间索引,所谓的索引(index)就是每一行数据的id,可以标识每一行的唯一值.pd.date_range

  3. 为了快速入门,我们看一下如何创建一个6X4的数据:randn函数用于创建随机数,参数表示行数和列数,dates是上一步创建的索引列.pd.DataFrame(np.random.randn(6,4),index=date,columns=list(‘abcd’))
  4. 我们还可以使用字典来创建数据框,例如创建一个列名为a的数据框,索引是自动创建的整数 pd.DataFrame({‘a’:np.randn(6),})
  5. 假如字典内的数据长度不同,以最长的数据为准,比如B列有4行:
  6. 可以使用obj.dtypes来查看各行的数据格式
  7. 使用head查看前几行数据(默认是前5行),不过你可以指定前几行obj.head(n)
  8. 使用tail查看后5行数据obj.tail(5)
  9. 查看数据框的索引obj.index
  10. 查看列名用columns查看数据值,用values查看描述性统计,用describe,使用T来转置数据,也就是行列转换,对数据进行排序,用到了sort,参数可以指定根据哪一列数据进行排序。(形式都是obj.func())
  11. 使用type看一下输出的描述性统计是什么样的数据类型——DataFrame数据(type(df.describe()))

区别del,remove,pop

  1. del,pop会改变原有对象,remove会生成新对象,不改变原有
  2. remove参数是值,而del,pop是索引
  3. 出错信息remove是not in,del和pop是out of range

返回多个函数值

如何写一个返回多个值的函数 ?

函数的return 语句只能返回一个值,可以是任何类型。

因此,我们可以“返回一个 tuple类型,来间接达到返回多个值 ”。

大杀器:官方文档:点这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_shsf

来包瓜子嘛,谢谢客官~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值