



实现过程
一、模块导入与日志配置
import pandas as pdimport logginglogging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
pandas库来读取、转换和保存数据,并利用xlsxwriter引擎来格式化输出文件。def main():input_path = '销售数据.xlsx'output_path = '销售数据_转换后.xlsx'try:# 读取Excel文件,并指定日期列的格式df = pd.read_excel(input_path, header=0)# 查看是否存在缺失值,并选择处理方式(这里简单地删除含有缺失值的行)if df.isnull().values.any():logging.warning("检测到缺失值,将删除含有缺失值的行")df.dropna(inplace=True)# 确保日期列是字符串类型,以保持原始格式df['日期'] = df['日期'].dt.strftime('%Y/%m/%d') if pd.api.types.is_datetime64_any_dtype(df['日期']) else df['日期']# 使用pivot_table函数将多列数据转换为二维表df_pivot = pd.pivot_table(df, values='数量', index='产品名称', columns='日期', aggfunc=sum)# 将MultiIndex列名转换回字符串形式df_pivot.columns = df_pivot.columns.map(lambda x: str(x).split()[0] if isinstance(x, pd.Timestamp) else x)# 查看转换后的二维表print(df_pivot)# 保存转换后的数据到本地文件,并指定日期格式writer = pd.ExcelWriter(output_path, engine='xlsxwriter')df_pivot.to_excel(writer, sheet_name='Sheet1')workbook = writer.bookworksheet = writer.sheets['Sheet1']# 设置日期格式date_format = workbook.add_format({'num_format': 'yyyy/mm/dd'})# 应用日期格式到相关列for idx, col in enumerate(df_pivot.columns):if isinstance(col, pd.Timestamp):worksheet.set_column(idx + 1, idx + 1, 18, date_format)writer.close()logging.info(f"成功保存转换后的数据到 {output_path}")except Exception as e:logging.error(f"发生错误: {e}")
if __name__ == '__main__':main()
以上就是本次分享的全部内容,如果你有任何疑问或想要分享的经验,评论区永远为你敞开。你的每一个点赞和转发,都是对我们最大的支持和鼓励!
再次感谢你的阅读,期待在下一次分享中与你相见!
精选阅读
python自动化系列:将Excel表格中的学生信息自动填充到一个word文档
python自动化系列:将Excel表格中的学生多条信息自动填充到一个Word文档
python自动化系列:Python脚本实现GIF动画的快速生成
python自动化系列:一键将Excel多页数据批量转换为Word文档
python自动化系列:如何使用Python为PDF文件添加密码保护
python自动化系列:自动抓取网站文章的工具(有知有行-E大)
python自动化系列:一键批量导出Excel工作表为图片,简化报告制作流程
python自动化系列:基于Excel数据自动生成员工工资调整通知
python自动化系列:使用OpenCV精准替换浅蓝色背景为白色——保持前景物体不变的技巧
python自动化系列:如何使用Python轻松调整视频分辨率至720p