如何将矩阵式Excel表格转换为含分类列的展开式表格?
矩阵表格转两列分类表的方法及操作名称
操作的标准名称
这个转换操作的标准名称是逆透视(Unpivot),也常被称为宽表转长表(Wide to Long Format Conversion)——核心是将宽格式表格中多列的列名转换为长格式表格中的行数据,同时保留关联的ID信息。
简便实现方法
用Excel(Power Query)
- 选中你的数据区域,切换到「数据」选项卡,点击「从表格/区域」(确保数据有表头)
- 在Power Query编辑器中,选中
id列,右键选择「逆透视其他列」 - 将自动生成的「属性」列重命名为
category,删除多余的「值」列,最后点击「关闭并上载」即可得到目标表格
用Python Pandas库
import pandas as pd # 构造原数据(实际使用时可直接读取文件) df = pd.DataFrame({ 'id': [1, 2, 3, 4], 'foo': ['x', None, None, 'x'], 'bar': [None, 'x', None, 'x'], 'baz': [None, None, 'x', 'x'] }) # 执行逆透视,过滤空值并清理列 result_df = df.melt( id_vars='id', var_name='category', value_name='temp' ).dropna(subset=['temp']).drop('temp', axis=1) # 输出结果 print(result_df)
运行后会直接输出你需要的两列表格,其中ID为4的行会自动拆分成3条对应的分类记录。
内容的提问来源于stack exchange,提问作者sushi
相关产品推荐
相关产品推荐

