python 常用技巧


python 常用技巧

1. 数据整理

  • 排序

    排序主要用到sorted()函数

     sorted(iterable[, cmp[, key[, reverse]]]
    • iterable:是可迭代类型类型;
    • cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
    • key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
    • reverse:排序规则. reverse = True 或者 reverse = False,有默认值,默认为升序排列(False)。
    1. 字典排序

      字典三个常用的方法items(),keys(),values()分别将字典中相应的数据以列表的形式返回。

      按照key值排序:

      sorted(d.items(),key=lambda item:item[0])
      sorted(d) #也是按照d中的key排序

      items()方法将字典的元素 转化为了元组,而这里key参数对应的lambda表达式的意思则是选取元组中的第一个元素作为比较参数

      按照value值排序:

      sorted(d.items(),key=lambda item:item[1],reverse=True)
    2. list,tuple排序

      >>> student_tuples = [
              ('john', 'A', 15),
              ('jane', 'B', 12),
              ('dave', 'B', 10),
      ]
      >>> sorted(student_tuples, key=lambda student: student[2])   # sort by age
      [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
  • execl 操作

    1. xld 操作xls文件

      • 获取一个工作表

        data = xlrd.open_workbook('excel.xls')
        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)
      • 获取行数和列数,单元格值

        table.nrows
        table.ncols
        
        table.cell(0,0).value
        table.cell(2,3).value
      #一个写操作例子
      import xlwt
      workbook = xlwt.Workbook(encoding = 'ascii')
      worksheet = workbook.add_sheet('My Worksheet')
      worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
      workbook.save('Excel_Workbook.xls')
    2. openpyxl操作

      • 基础操作

        from openpyxl import load_workbook
        # 默认可读写,若有需要可以指定write_only和read_only为True
        wb = load_workbook('mainbuilding33.xlsx')
        # 获得所有sheet的名称
        print(wb.get_sheet_names())
        # 根据sheet名字获得sheet
        a_sheet = wb.get_sheet_by_name('Sheet1')
        # 获得sheet名
        print(a_sheet.title)
        # 获得当前正在显示的sheet, 也可以用wb.get_active_sheet()
        sheet = wb.active 
        # 获取某个单元格的值,观察excel发现也是先字母再数字的顺序,即先列再行
        b4 = sheet['B4']
        # 分别返回
        print(f'({b4.column}, {b4.row}) is {b4.value}')  # 返回的数字就是int型
        
        # 除了用下标的方式获得,还可以用cell函数, 换成数字,这个表示B4
        b4_too = sheet.cell(row=4, column=2)
        print(b4_too.value)
        
        # 获得最大列和最大行
        print(sheet.max_row)
        print(sheet.max_column)
        
        #sheet.rows为生成器, 里面是每一行的数据,每一行又由一个tuple包裹。
        #sheet.columns类似,不过里面是每个tuple是每一列的单元格。
        # 因为按行,所以返回A1, B1, C1这样的顺序
        for row in sheet.rows:
            for cell in row:
                print(cell.value)
        
        # A1, A2, A3这样的顺序
        for column in sheet.columns:
            for cell in column:
                print(cell.value)
  • numpy操作

    1. 基础方法

      # 返回特定大小,以 1 填充的新数组。
      numpy.ones(shape, dtype = None, order = 'C')
      x = np.ones([2,2], dtype =  int) 
      
      [[1  1] 
       [1  1]]
      
      # 返回特定大小,以 0 填充的新数组。
      numpy.zeros(shape, dtype = float, order = 'C')
      x = np.zeros(5) 
      x = np.zeros((5,), dtype = np.int)  
      
      [0  0  0  0  0]
      
      #list 转 numpy
      np.array(a)
      #ndarray 转 list
      a.tolist()

Author: Maelsee
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Maelsee !
评论
 Previous
Git基本操作 Git基本操作
Git 基本操作0. 添加ssh账户 这一步是在ubuntu中生成ssh密钥,然后添加到github中 生成git密钥 删除~/.ssh目录,这里存储了旧的密钥 rm -r .ssh 运行如下命令生成密钥 在“图标2”处可以填写保存密
2020-02-23
Next 
pagerank算法和hits算法 pagerank算法和hits算法
pagerank算法和hits算法1.pagerank算法 算法原理  如果网页T存在一个指向网页A的连接,则表明T的所有者认为A比较重要,从而把T的一部分重要性得分赋予A。这个重要性得分值为:PR(T)/L(T) ​ 其中PR(
2020-02-21
  TOC