日期复制到2-n列前
日期复制到2-n列前,处理每个商品数据时,直接跳过前面空白的行,然后从有数据的行开始,将数据复制到新的 Excel 文件中从第二行开始的位置
import pandas as pd import os # 获取桌面路径 desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") # 源文件路径 source_file_path = os.path.join(desktop_path, "源数据.xlsx") # 读取 Excel 文件 df = pd.read_excel(source_file_path) # 提取日期列 date_column = df.iloc[:, 0] # 初始化一个空的列表,用于存储处理后的 DataFrame processed_dfs = [] # 遍历第 2 列到第 n 列 for col in df.columns[1:]: # 获取当前商品的销售额列 sales_column = df[col] # 创建一个新的 DataFrame,包含日期列和当前商品的销售额列 new_df = pd.DataFrame({ '日期': date_column, col: sales_column }) # 找到第一个有销售额数据的行的索引 first_valid_index = new_df[col].first_valid_index() if first_valid_index is not None: # 从第一个有数据的行开始截取数据 new_df = new_df.loc[first_valid_index:] # 重置索引 new_df = new_df.reset_index(drop=True) # 将处理后的 DataFrame 添加到列表中 processed_dfs.append(new_df) # 处理后文件的保存路径 output_file_path = os.path.join(desktop_path, "处理后.xlsx") # 创建一个 ExcelWriter 对象 with pd.ExcelWriter(output_file_path, engine='openpyxl') as writer: # 创建工作表 sheet = writer.book.create_sheet('Sheet1') # 将工作表添加到 writer.sheets 字典中 writer.sheets['Sheet1'] = sheet # 写入表头 headers = [] for df in processed_dfs: headers.extend(df.columns) sheet.append(headers) # 逐列写入每个 DataFrame 的数据,从第二行开始 col_offset = 0 for df in processed_dfs: for row_idx, row in df.iterrows(): sheet.cell(row=row_idx + 2, column=col_offset + 1, value=row['日期']) sheet.cell(row=row_idx + 2, column=col_offset + 2, value=row[df.columns[1]]) col_offset += 2

浙公网安备 33010602011771号