用于对csv文件执行etl处理的包

etl-pipeline的Python项目详细描述


解决方案概述: etl_pipeline是在标准python 3.5.4环境中实现的一个独立模块,它使用标准库在将数据输入机器学习模型之前执行数据清理、准备和充实。 此模块包含一个类etl_管道,在该管道中实现所有功能。该类包含两个公共方法,用于对输入数据执行ETL操作: load():此方法从输入文件中提取数据,并将其作为python列表存储在类的私有变量中,以便在transform()方法中进一步处理。列表的大小取决于输出中所需列的列表。这可以使用load()方法中可用的参数进行控制。 transform():此方法对由load方法创建的列表变量中存储的数据执行数据转换。映射规则可以作为参数传递给transform()方法。 除了上述两种方法外,该类中还有其他可用的支持方法(私有): _获取分隔符:返回输入文件的分隔符和行结束符。 _格式化行:使用分隔符和行终止符从输入文件中返回行文本作为列列表进行拆分。 _ get_index:生成一个整数列表,指示load()方法的select_list参数中指定的值相对于头(文件中的列名)的位置/索引。 加载到CSV:将转换后的数据存储在输入参数指定的CSV文件中。如果未指定文件名,则文件将保存在output.csv中的默认工作目录中。 下面的类变量列表可用于调试和测试: 分隔符:输入文件中的列分隔符 lineterminator:输入文件中使用的行分隔符 拒绝的行:提供由于错误数据而从数据集中排除的行的列表。如果在transform()方法中执行数据转换时出错,则此列表变量中的最后一项将提供有关错误位置和类型的详细信息。 input_rows:以原始格式提供用于数据转换的行列表。 header:输入文件的头行 select_list:输出数据集中存在的列的列表。 加载(): 此方法接受以下参数:

  1. 数据文件:它是传递输入文件名的必需参数。
  2. header:传递header信息的可选参数。如果没有提供,则文件的第一行将用作标题。默认值为“无”。
  3. select_list:它是一个可选参数,包含要在输出中显示的列列表。如果在函数调用期间未提供,则在输出数据集中,标题中的所有列都将可用。默认值为“无”。
  4. 跳过行:它是一个可选参数,包含用于标识错误记录的单个值或值列表。违约价值-欧元-欧元。 示例1:不包括任何列中包含‘’ 例2:[不包括含有欧元∏-欧元或欧元∏na欧元的行]。
  5. 分隔符:它是包含列分隔符的可选参数。如果在函数调用期间未提供该值,则将使用_get_delimiter方法获取该值。默认值为“无”。
  6. lineterminator:它是包含行分隔符的可选参数。如果在函数调用期间未提供该值,则将使用_get_delimiter方法获取该值。默认值为“无”。

转换(): 此方法接受一个可选的参数映射规则。如果未提供值,则不会对数据应用转换。 如果映射规则作为字典传递,则输出数据集将按定义进行转换。

在transform方法中,我们可以使用字典传递需要数据转换的列的映射细节。列名用作字典键,该值对应于要应用于列值的函数列表。您还可以传递输出数据t为列表中的每一列键入最后一个值。 此函数返回包含输出数据集的列表列表。第一个列表将是标题,其余列表将是行格式的值。

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

推荐PyPI第三方库


热门话题
java需要设置框架。可设置大小(false)以重新绘制()   java我对PDF文件感到困惑   为什么是太阳。jvm。热点。调试器。DebuggerException:无法打开二进制文件`?   设置结果为textview时出现java空指针异常   我应该使用什么同步原语在Java中实现事件驱动程序框架?   java为什么WindowClosing处理程序在退出程序之前不执行后台任务?   如何将“20170712T18:43:04.000Z”转换为安卓或java中的相对时间?   Java,获取按键的时间长度,currentTimeMillies()始终为24   maven构建的java可执行Jar找不到logback。xml   java在其外部的函数中使用for循环中的值   java如何以表格格式将不同长度的数据对齐   java Play 2.5 WebSocket连接构建   maven而非eclipse的java强制转换问题   java如何在JFreeChart中使X轴上的值水平?   构建Java Windows应用程序以访问在线MySQL数据库需要什么   java添加构造函数会出错吗?这没有道理,请帮忙,编程问题   java在一个jframe中的两个JPanel中使用两个绘制方法   java数学或逻辑问题   java如何复制Androids库存摄像头方向更改