Auto1挑战的ETL包

guacamoleETL的Python项目详细描述


鳄梨油-文档

一个etl管道工具,它

  • 预处理
  • 通过给定的规范将数据转换为矩阵(列表列表)
  • 将数据加载到.csv文件(output.csv

安装

此工具可以与pip
一起安装 复制粘贴并在终端中运行此命令

pip install guacamoleETL

用法

这个etl管道可以作为预测模型训练的一部分,并将数据直接输入模型

importguacamoleETLdataFile='Challenge_me.txt'guacamoleETL.load(dataFile)result=guacamoleETL.transform(dataFile)predictive_model=model_training(result)

功能

  • 提取数据(txt文件):将数据从.txt文件提取到临时.csv文件
    在提取过程中删除前导或尾随空白
  • clean_up():清除包含无效信息的数据
    不包括任何指定列中占位符为“-”(NA)的行
  • 转换(路径):通过给定的规范将预处理的数据转换为矩阵
    engine-location被分成两列,engine-location_frontengine-location_rear和一个热编码
    num-of-cylinders通过预定义的字典从word转换为integer engine-size被转换为整数
    weight转换为整数
    horsepower从德语十进制表示法字符串转换为浮点数
    aspiration修改为aspiration_turbo,因此涡轮发动机标记为1
    price从次要单位转换为主要单位
    make不转换,但保留在数据集中
  • load(路径):将以前转换的数据加载到.csv文件中

架构

所有功能都在__init__.py中实现,此决定基于以下原因:

  • 导入包后,如果要将转换和加载函数直接用作子模块,则必须在__init__.py中导入或定义这些函数。
  • 由于它们都是相互连接的,例如transform函数获取预处理(提取和清理)的结果,load函数也获取transform函数的结果,所以如果它们都在同一个文件中,则更容易跟踪流。
  • 这可能不是最好的体系结构实现,但是,虽然从小事做起,简单性始终是一个很好的考虑因素。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java JPA:如何将持久性上下文与批量更新或删除的结果同步?   程序未激活时的java捕获击键   字符串到日期对象的java解析   LucenePDFDocument从pdfbox中消失了吗?   java解析ISO8601日期字符串到UTC时区的日期   java Android随机存取文件和文件系统缓冲区   java如何确保泛型类型的类型   mysql无法从Java中的数据库读取表中的行   spring用Java处理数百万条数据库记录   java AsyncTask正在引发InvocationTargetException   java这些集合允许null。为什么我不能添加空元素?   java无法从Android中的ftp服务器下载txt文件   Java堆栈跟踪未使用log4j2打印   java如何在Ubuntu 11.10上编译OpenJDK 7调试版本   java动态文件夹创建   在PHP和Java中使用socket   Java mxGraph中是否有可能限制单元格移动但不禁用它?   java如何找到org的路径。朱尼特?   方向更改时的java NullPointerException