Python自动化办公技巧:从Excel表中抽取并存入新Sheet

版权申诉
0 下载量 127 浏览量 更新于2024-09-29 收藏 3.16MB ZIP 举报
资源摘要信息:"Python自动办公-26 Python从原Excel表中抽出数据存入同一文件的新的Sheet.zip" 文件标题指出了本资源是关于使用Python语言进行自动办公的一个实例,具体任务是操作Excel表格文件。本例中的核心功能是从一个已存在的Excel表中提取数据,并将这些数据保存到同一个Excel文件的不同工作表(Sheet)中。这个任务在办公自动化中非常实用,可以用于数据整理、汇总、报告生成等多个场景。 在开始讨论相关知识点之前,需要指出的是,Python因其简洁易读的语法和强大的第三方库支持,在数据处理和办公自动化方面有着得天独厚的优势。特别是对于处理Excel文件,Python有着诸如pandas、openpyxl、xlrd、xlwt等强大的库。 描述中提及的“Python”是本资源的核心技术点,而文件中包含的`.ipynb`和`.py`文件后缀名表示此资源包含了Jupyter Notebook和Python脚本文件。Jupyter Notebook是一种支持运行代码并展示结果的交互式文档格式,非常适合于数据处理和办公自动化任务的演示和教学。`.ipynb`文件通常用于记录和分享代码执行过程,而`.py`则是标准的Python脚本文件。 提到的文件名列表中的`物料表.xlsx`和`物料表_1.xlsx`暗示了可能处理的是与物料相关的数据。这种名称通常表示不同时间点或版本的物料数据记录,可能用于库存管理、成本计算等。而`images`文件夹可能包含与本实例相关的一些图表或者视觉辅助材料,例如数据透视表的可视化、图表展示等。 在本资源中,涉及到的具体知识点可能包括但不限于: 1. 使用Python进行文件操作的基本知识,如打开、读取、写入Excel文件。 2. 熟悉Python的pandas库,它是一个强大的数据分析和操作库。pandas提供了非常方便的数据结构和数据分析工具,特别是对于处理表格数据非常有效。 3. 了解DataFrame和Series等基本数据结构,这是pandas处理数据的核心。 4. 学习如何使用pandas的read_excel()函数读取Excel文件,以及to_excel()函数将数据写入新的Excel文件或新的工作表。 5. 掌握数据筛选和操作的基本技能,例如根据条件选择特定数据行或列。 6. 了解Python的文件路径操作,以确定如何正确读取和写入文件。 7. 学习使用Jupyter Notebook进行代码演示和结果展示,理解其单元格的概念,以及如何导入和使用不同库和模块。 本资源的具体代码实现可能会涉及到上述知识点的应用,例如创建一个pandas DataFrame,从原始Excel文件中读取数据到DataFrame,然后根据需求筛选特定数据,最后将筛选后的数据保存到同一个Excel文件的新Sheet中。其中可能还会用到异常处理、数据清洗等高级技能。 另外,由于资源标题中包含了“自动办公”的描述,这暗示了Python脚本在此场景下的应用价值。自动办公不仅能够减少重复劳动,还能够提高数据处理的效率和准确性。在实际应用中,自动化脚本可以定时执行,或者在特定条件下触发,大幅提高工作效率。 最后,值得注意的是,由于文件夹中包含“物料表.xlsx”和“物料表_1.xlsx”,在实际应用中,可能需要对不同版本的数据进行合并、比较或更新。这可能涉及到对Excel中不同工作表或不同文件间的操作,以及数据的对比分析。在编写自动化脚本时,可能需要综合运用到数据分析、数据处理、条件逻辑判断、异常处理等技术。 综上所述,本资源是一个关于Python办公自动化的具体实例,其内容丰富,涵盖了数据处理、文件操作、自动化等多个方面,对于学习和应用Python进行办公自动化有很高的参考价值。

# 导入pandas库 import pandas as pd # 读取excel文件的两个sheet sheet1 = pd.read_excel("对照组.xlsx", sheet_name="idle_transition_probability") sheet2 = pd.read_excel("对照组.xlsx", sheet_name="hexagon_grid_table") # 把sheet转换成字典列表 sheet1 = sheet1.to_dict(orient="records") sheet2 = sheet2.to_dict(orient="records") # 创建一个空的字典,用来存储区域id和坐标的对应关系 area_dict = {} # 选择sheet1的第2列和第3列 sheet1 = sheet1.iloc[:, [1, 2]] # 把sheet1的第2列和第3列的数据转换成列表 start_area_list = sheet1.iloc[:, 0].tolist() end_area_list = sheet1.iloc[:, 1].tolist() # 用zip函数把两个列表组合成一个迭代器 area_pairs = zip(start_area_list, end_area_list) # 用for循环遍历每一对上下车地点所在区域的id for start_area, end_area in area_pairs: # 根据id从字典中获取对应的坐标 start_coord = area_dict[start_area] end_coord = area_dict[end_area] # 遍历sheet2,把区域id作为键,坐标作为值,存入字典中 for row in sheet2: area_id = row["格子ID"] longitude = row["中心经度"] latitude = row["中心维度"] area_dict[area_id] = (longitude, latitude) # 创建一个空的列表,用来存储每个时间段的曼哈顿距离 distance_list = [] # 计算两个坐标之间的x轴距离和y轴距离 x_distance = abs(end_coord[0] - start_coord[0]) y_distance = abs(end_coord[1] - start_coord[1]) # 计算两个坐标之间的曼哈顿距离,并添加到列表中 manhattan_distance = x_distance + y_distance distance_list.append(manhattan_distance) # 创建一个空的DataFrame df = pd.DataFrame() # 把列表添加到DataFrame中,指定列名 df["曼哈顿距离"] = distance_list # 把DataFrame保存到Excel文件中,指定文件名和sheet名 df.to_excel("result.xlsx", sheet_name="result")请你帮我修改一下

2023-05-25 上传