Python中如何实现每3行合并为1行的行转列映射转换
Python 按3行分组行转列实现方案
核心处理逻辑
- 按顺序遍历原始行数据,每3行划分为1个独立处理组
- 每个组内的3行数据依次映射为新行的3个列值,不足3行的组可按需补空值
- 所有分组处理完成后直接输出拼接后的宽表结果
实现代码
1. Pandas实现(适合结构化表格数据处理)
import pandas as pd # 此处替换为你的原始行数据列表,也可通过pd.read_csv/read_excel读取文件后提取对应列 raw_data = ["值1", "值2", "值3", "值4", "值5", "值6"] df = pd.DataFrame(raw_data, columns=["raw_col"]) # 按3行一组生成分组ID df["group_id"] = df.index // 3 # 分组后展开为多列 final_result = df.groupby("group_id")["raw_col"].apply(list).apply(pd.Series).reset_index(drop=True) # 按需修改列名 final_result.columns = ["col1", "col2", "col3"] print(final_result)
2. Python原生实现(无需依赖第三方库)
# 替换为实际原始行数据 raw_data = ["值1", "值2", "值3", "值4", "值5", "值6"] final_result = [] # 步长为3遍历取分组 for idx in range(0, len(raw_data), 3): current_group = raw_data[idx: idx+3] # 不足3行的补空值,不需要补位可删除此行 current_group += [None] * (3 - len(current_group)) final_result.append(current_group) # 输出转换后结果 for row in final_result: print(row)
若原始数据存储在本地文件中,仅需要调整
raw_data的读取逻辑即可直接复用上述代码。
内容的提问来源于stack exchange,提问作者ATUL VISHAL
相关产品推荐
相关产品推荐

