DataFrame元素合并方法咨询 需支持N列数据批量处理
宽格式DataFrame批量转长格式实现方案
你需要的多列批量合并效果可以通过pandas的wide_to_long方法实现,天然支持任意数量同规则列的批量处理,无需逐列配置。
原数据参考

目标输出参考

具体实现代码
import pandas as pd # 1. 读取你的原始数据,替换为你自己的读取逻辑即可 # df = pd.read_excel("你的文件路径.xlsx") # df = pd.read_csv("你的文件路径.csv") # 下方为测试用的示例数据构造,你使用时可以删除 df = pd.DataFrame({ "唯一标识列": ["示例行1", "示例行2"], "属性1_1": ["值1", "值A"], "属性2_1": ["值2", "值B"], "属性1_2": ["值3", "值C"], "属性2_2": ["值4", "值D"], # 可继续添加属性1_N、属性2_N...任意多组列,后续代码无需修改 }) # 2. 批量转换逻辑 converted_df = pd.wide_to_long( df, # 这里填所有要合并的列的公共前缀,有多少加多少,比如你有10个属性就填10个 stubnames=["属性1", "属性2"], # 这里填原表中不需要合并的主键列名,可以填多个,比如["主键1", "主键2"] i="唯一标识列", j="分组序号", # 列名前缀和数字后缀之间的分隔符,比如你的列是属性1_1就填"_",是属性11就填"" sep="_", suffix="\\d+" ).reset_index() # 不需要分组序号可以直接删掉该行 converted_df = converted_df.drop("分组序号", axis=1) # 3. 输出验证或者保存 print(converted_df) # converted_df.to_excel("转换后结果.xlsx", index=False)
多列适配说明
如果需要处理N组列,仅需修改stubnames参数,把所有要合并的列的公共前缀加入列表即可,其余逻辑完全不变,支持任意数量的同规则列批量处理。
内容的提问来源于stack exchange,提问作者Suraj Singh
相关产品推荐
相关产品推荐

