petl函数表

petl

文档地址: https://petl.readthedocs.io/en/latest/index.html

Extract/Load

可以读取 csv pickle text xml html json database excel array hdfs 等文件

Transfrom 转换

Basic

petl.transform.basics.

  1. head(table, n=5) 取开始的行
  2. tail(table, n=5) 取尾部的行
  3. rowslice(table, *sliceargs) 对行做切片
  4. cut(table, *args, **kwargs) 取指定列
  5. cutout(table, *args, **kwargs) 排除指定列
  6. movefield(table, field, index) 移动列到新的位置
  7. cat(*tables, **kwargs) 连接两个表
  8. stack(*tables, **kwargs) 连接两个表,不匹配表头
  9. skipcomments(table, prefix) 跳过包含指定前缀的行
  10. addfield(table, field, value=None, index=None, missing=None) 添加一个新的字段
  11. addcolumn(table, field, col, index=None, missing=None) 添加新的数据列(和addfield有些相似)
  12. addrownumbers(table, start=1, step=1, field=’row’) 添加行计数
  13. addfieldusingcontext(table, field, query) 添加字段,query是一个回调,把相邻三行作为三个参数传入
  14. annex(*tables, **kwargs) join 两个或多个表,按行连接

petl.transform.headers

  1. rename(table, *args, **kwargs) 修改名称
  2. setheader(table, header) 设置表头
  3. extendheader(table, fields) 扩展表头(可以用来补全表头信息)
  4. pushheader(table, header, *args) 设置表头(将第一行当中数据,而不是表头)
  5. prefixheader(table, prefix) 为表头添加前缀
  6. suffixheader(table, suffix) 为表头添加后缀
  7. sortheader(table, reverse=False, missing=None) 排序
  8. skip(table, n) 跳过行的项不为 n 的行

Converting

petl.transform.conversions

  1. convert(table, *args, **kwargs) 转换(包括数据类型,格式,替换,lambda 等)
  2. convertall(table, *args, **kwargs) 同convert
  3. convertnumbers(table, strict=False, **kwargs) 转换为数值
  4. replace(table, field, a, b, **kwargs) 替换
  5. replaceall(table, a, b, **kwargs) 替换全部
  6. format(table, field, fmt, **kwargs) 格式化
  7. formatall(table, fmt, **kwargs) 格式化全部
  8. interpolate(table, field, fmt, **kwargs) 插入
  9. interpolateall(table, fmt, **kwargs)
  10. update(table, field, value, **kwargs) 更新

Selecting rows

petl.transform.selects

  1. select(table, *args, kwargs) 根据条件选择行 (扩展出各种 select 的快捷方法
  2. selectusingcontext(table, query) 基于上一行和下一行来选择数据
  3. rowlenselect(table, n, complement=False) 选择长度为n的行
  4. facet(table, key) 按指定的key分组,将返回值映射到字典
  5. biselect(table, *args, **kwargs) 拆分成两个表,一个为选择的行,一个为抛弃的行

Regular expressions

petl.transform.regex

  1. search(table, *args, **kwargs) 查询返回匹配行
  2. searchcomplement(table, *args, **kwargs) 查询返回不匹配的行
  3. sub(table, field, pattern, repl, count=0, flags=0) 替换
  4. split(table, field, pattern, newfields=None, include_original=False, maxsplit=0, flags=0) 分割指定fields
  5. capture(table, field, pattern, newfields=None, include_original=False, flags=0, fill=None) 分组,通过表达式分组来分割fields

Unpacking compound values

petl.transform.unpacks

  1. unpack(table, field, newfields=None, include_original=False, missing=None) 拆分 list 或 tuples
  2. unpackdict(table, field, keys=None, includeoriginal=False, samplesize=1000, missing=None) 拆分 dictionary

Transforming rows

petl.transform.maps

  1. fieldmap(table, mappings=None, failonerror=False, errorvalue=None) 转换表,在输入与输出之间映射
  2. rowmap(table, rowmapper, header, failonerror=False) 转换表,函数
  3. rowmapmany(table, rowgenerator, header, failonerror=False) 转换表,将行映射到任意行
  4. rowgroupmap(table, key, mapper, header=None, presorted=False, buffersize=None, tempdir=None, cache=True)

Sorting

petl.transform.sorts

  1. sort 排序
  2. mergesort 多个表排序,输出一个表
  3. issorted 判断是否为排序表

Joins

petl.transform.joins

  1. join 根据指定的键连接表
  2. leftjoin 左连接
  3. lookupjoin 左连接,如果右表多,任意选择行
  4. rightjoin 右连接
  5. outerjoin 完全连接,保留所有,为空填充None
  6. crossjoin 笛卡尔连接
  7. antijoin 返回左表中没有在右表出现的行
  8. unjoin 将一个表拆成两个表
  9. hashjoin
  10. hashleftjoin
  11. hashlookupjoin
  12. hashrightjoin
  13. hashantijoin

Set operations

petl.transform.setops

  1. complement 返回a中不在b中的行
  2. diff 查找两个表之间的差异,返回两个表,分别为b表不在a中的,a表不在b中的
  3. recordcomplement 查找不在b中的记录
  4. recorddiff 查找两个表之间的差异
  5. intersection 返回a也在b中的数据
  6. hashcomplement
  7. hashintersection

Deduplicating rows

petl.transform.dedup

  1. duplicates 选出给定键具有重复的行
  2. unique 选出给定键唯一行
  3. conflicts 选出相同键值,但其他行不同的
  4. distinct 返回表中不同行
  5. isunique 判断是否唯一

Reducing rows (aggregation)

petl.transform.reductions

  1. aggregate 聚集,对指定键做聚合
  2. rowreduce 对行根据指定键做reduce
  3. mergeduplicates 合并给定键下的重复行
  4. merge 根据指定键合并表
  5. fold python reduce 操作
  6. groupcountdistinctvalues
  7. groupselectfirst

‘’’
还有很多,不想写了。。。
‘’’

作者

张巍

发布于

2016-11-17

更新于

2016-11-17

许可协议

评论