用于对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:输出数据集中存在的列的列表。 加载(): 此方法接受以下参数:
- 数据文件:它是传递输入文件名的必需参数。
- header:传递header信息的可选参数。如果没有提供,则文件的第一行将用作标题。默认值为“无”。
- select_list:它是一个可选参数,包含要在输出中显示的列列表。如果在函数调用期间未提供,则在输出数据集中,标题中的所有列都将可用。默认值为“无”。
- 跳过行:它是一个可选参数,包含用于标识错误记录的单个值或值列表。违约价值-欧元-欧元。 示例1:不包括任何列中包含‘’ 例2:[不包括含有欧元∏-欧元或欧元∏na欧元的行]。
- 分隔符:它是包含列分隔符的可选参数。如果在函数调用期间未提供该值,则将使用_get_delimiter方法获取该值。默认值为“无”。
- lineterminator:它是包含行分隔符的可选参数。如果在函数调用期间未提供该值,则将使用_get_delimiter方法获取该值。默认值为“无”。
转换(): 此方法接受一个可选的参数映射规则。如果未提供值,则不会对数据应用转换。 如果映射规则作为字典传递,则输出数据集将按定义进行转换。
在transform方法中,我们可以使用字典传递需要数据转换的列的映射细节。列名用作字典键,该值对应于要应用于列值的函数列表。您还可以传递输出数据t为列表中的每一列键入最后一个值。 此函数返回包含输出数据集的列表列表。第一个列表将是标题,其余列表将是行格式的值。