求更简单高效的Pandas垂直堆叠多表合并优化方案
更简洁高效的堆叠Excel表格处理方案
针对你处理垂直堆叠多表格Excel文件的需求,这里提供一种更简洁、性能更优的实现方式,利用pandas的向量化操作和分组功能替代手动循环切片:
import pandas as pd # 读取数据 path = r"/content/test_data.xlsx" df = pd.read_excel(path, skiprows=4, usecols=range(0,4), header=None) df.columns = ["col_x", "col_y", "col_z", "col_t"] # 标记所有表头行(即col_x等于"col_x"的行) df['is_header'] = df['col_x'] == 'col_x' # 生成分组ID:每遇到一个表头行,分组ID递增,自动划分每个子表的范围 df['group_id'] = df['is_header'].cumsum() # 提取每个分组的表头行col_y值,填充到该分组的所有行中 df['Value y'] = df.groupby('group_id')['col_y'].transform('first') # 过滤掉所有表头行,得到最终合并后的数据集 new_df = df[~df['is_header']].reset_index(drop=True) # 保存结果 new_df.to_csv("test_data_result_combined.csv", index=False)
优化说明
- 避免手动索引操作:无需手动提取表头行索引、循环切片拼接,完全利用pandas内置的分组和向量化方法,代码更简洁易维护
- 性能提升:向量化操作比Python循环效率高得多,尤其是处理大数据量时优势明显
- 逻辑更清晰:通过分组ID明确划分每个子表范围,填充对应
col_y值的逻辑直观易懂
内容的提问来源于stack exchange,提问作者Shck Tchamna
相关产品推荐
相关产品推荐

