# %% [python] cell-8c1c3954072a import pyodide # %% [plaintext] cell-5f74043593b2 在“rawdata.xlsx”中,商品ID”是主键,清洗规则是:删除价格无效的记录;对于空值,如果是字符串,就填“无”,如果是数值,就填“0”。 字段“月销量”需要作数据转换,方法为:月销量按收货人数的整数值从大到小进行排序(对于“行业销量前XXX”、“行业销量TopXXX”、“本月行业热销”这样的模糊值暂时排在最后)得到一个“收货人数”列表,然后遍历月销量字段的每个记录,那么行业销量前20所代表的数值就在“收货人数”列表的第20个,行业销量Top5所代表的数值就在“收货人数”列表的第5个,而本月行业热销所代表的数据可以取“收货人数”列表的第50个。依次类推则月销量字段的记录全部转化为整数值。 # %% [prompt] cell-55c9fa37d1d6 作为数据清洗规范定义师,你需要根据用户在《资料》中提出的要求和Excel文件“/rawdata.xlsx”的数据概要报告《rawdata_profile.json》,定义出精确的数据清洗任务规范,标题是“数据清洗规范”。基本任务包括: 1. **清洗任务说明**: - **格式转换**:确保日期字段转换为标准日期格式,数值字段统一为正确的数值格式。 - **处理空值**:选择合适的方式填充或删除表格中的缺失值,根据不同字段类型进行处理。 - **异常值处理**:检测并处理异常值,例如金额字段中的负值,保证数据的合理性。 - **去除重复行**:删除表格中的重复数据,确保数据的唯一性。 2. **输出要求**: - 清洗后的数据保存在路径为“/data.xlsx”的文件中,保留所有的表格和清洗后的数据。 # %% [plaintext] cell-8576bae57ddc # %% [prompt] cell-86ffc4fe0577 作为Python代码生成师,你需要根据《数据清洗规范》和数据概要报告《rawdata_profile.json》来生成具体的Python代码,完成数据清洗任务。代码中应详细注释每一个数据处理的步骤,确保数据清洗操作逻辑清晰,并符合规范要求。生成代码时,你应遵循以下基本原则: 1. **数据加载**: - 使用pandas加载“/rawdata.xlsx”文件,并读取所有的Sheet。 2. **数据清洗操作**: - **空值处理**:检查每个表格中的缺失值并选择合适的处理方法(例如使用`fillna()`填充空值或`dropna()`删除缺失值)。 - **格式转换**:日期字段使用`pd.to_datetime()`进行格式化,确保日期格式统一。数值字段需要使用`pd.to_numeric()`转换为标准数值格式。 - **异常值处理**:识别并处理数据中的异常值(例如金额字段中的负值),确保数据在合理范围内。 - **去除重复数据**:使用`drop_duplicates()`函数删除重复行,确保数据的唯一性。 - **列名规范化**:确保列名没有冗余的空格,并将其转换为小写字母。 3. **保存清洗结果**: - 使用`pd.ExcelWriter()`将清洗后的数据保存为“/data.xlsx”,保留表格结构。 # %% [python] cell-aa381647f869 # %% [prompt] cell-344fc1cd5783 作为数据验证测试师,你需要编写Python代码来验证“/data.xlsx”是否符合《数据清洗规范》中的要求,并用pandas的describe函数生成所有表格的数据概要报告保存到文件“/data_profile.json”。 测试代码需要覆盖清洗过程中每个关键环节,确保数据清洗任务按规范完成。用logging记录每一个测试步骤和验证结果,日志文件名是“/testing.log”。生成代码时,你应遵循以下基本原则: 1. **读取清洗后的数据**: - 使用pandas加载“/data.xlsx”文件,并读取其中的所有Sheet。 2. **验证空值**: - 检查数据中是否存在空值,确保所有字段中的缺失值已处理。 - 提示:使用`isnull().sum().sum()`来验证所有表格中的空值。 3. **验证日期格式**: - 检查日期字段是否已正确转换为标准日期格式。 - 提示:使用`pd.to_datetime()`验证日期字段的格式,并确保没有无效日期。 4. **验证数值字段合理性**: - 验证数值字段(如金额等)是否符合合理范围,确保没有负值。 - 提示:通过条件检查验证数值字段中的数据是否符合预期范围。 5. **验证重复数据**: - 检查每个表格中的重复行,确保数据没有冗余。 - 提示:使用`duplicated()`方法检查重复行,并确保没有重复记录。 6. **输出验证结果**: - 输出验证结果,确保所有清洗标准都通过。 # %% [python] cell-c6e2da48c3d1 # %% [prompt] cell-db9193fa13a3 作为IT审计师,你需要根据《数据清洗规范》以及测试结果日志文件“/testing.log”撰写一份详细的报告,格式是Markdown。报告应清晰地描述数据清洗过程、执行的清洗操作、遇到的问题以及如何解决,并对测试结果进行总结。报告应包括以下内容: 1. **任务背景**: - 简要介绍数据清洗任务的背景,包括清洗任务的目标、输入文件“rawdata.xlsx”(参看数据概要报告《rawdata_profile.json》)和输出文件“data.xlsx”(参看数据概要报告《data_profile.json》)的说明。 - 描述数据清洗的必要性和清洗后的数据预期结果。 2. **数据清洗操作概述**: - 根据《数据清洗规范》,详细列出执行的数据清洗操作步骤。包括: - 空值处理方法(填充或删除空值的策略) - 格式转换(日期、数值等字段的标准化处理) - 异常值处理(如何识别和处理超出合理范围的数据) - 重复数据去除(删除重复行的标准) - 每个清洗操作的目标及其重要性。 3. **测试结果分析**: - 分析“testing.log”中的测试结果,说明测试过程中验证的数据清洗标准和方法。 - 列出在测试过程中发现的任何问题(如空值未处理、格式错误、异常值未处理等),并说明这些问题如何被解决或是否仍然存在。 - 汇总测试日志中的所有验证结果,确认清洗后的数据是否符合《数据清洗规范》。 4. **问题与解决方案**: - 如果在数据清洗过程中遇到任何技术难题或数据问题(如某些字段格式无法转换、数据中仍有异常值等),详细描述问题的根本原因,并说明采取的解决措施。 - 如果测试过程中发现问题,列出已采取的修正措施,并提供问题修正后的数据清洗结果。 5. **结论与建议**: - 对数据清洗的最终结果进行总结,确认清洗后的数据符合规范要求。 - 如果有需要进一步优化的地方,提出改进建议(例如,空值填充策略的调整,异常值处理方法的优化等)。 报告应详细、结构清晰,确保报告内容能够清楚地反映整个数据清洗过程及其结果,并为后续可能的优化提供参考。 # %% [plaintext] cell-19d2293b408e