Google Sheets:将宝可梦属性二维表转换为一维列表
宝可梦属性克制表结构转换方案
需求明确
原始表格结构:
- 首行表头:18个单一攻击属性(如「火」「水」「草」等)
- 主体数据行:324行,每行对应一组防御方双属性组合(如「火+水」「火+草」等),并附带该组合对18种攻击属性的克制数值
目标输出:
生成共5832行(18³)的一维列表,每行包含三个核心字段:攻击方属性、防御方双属性、克制数值
Excel Power Query 实操步骤
- 选中原始表格的全部数据区域,点击顶部「数据」选项卡 → 「从表格/区域」,将数据导入Power Query编辑器
- 在编辑器中,选中所有代表攻击属性的列(除了第一列的防御双属性列),点击「转换」选项卡 → 「逆透视列」→ 「逆透视其他列」
- 此时表格会自动转换为三列:
防御方双属性、属性、值,手动将列名修改为防御方双属性、攻击方属性、克制数值 - 调整列顺序为「攻击方属性」→「防御方双属性」→「克制数值」,点击「关闭并上载」,即可得到目标一维列表
Python Pandas 实现代码
适合有编程基础的用户快速批量处理:
import pandas as pd # 读取原始表格(假设文件名为 pokemon_type_chart.xlsx,第一列是防御双属性,首行是攻击属性表头) df = pd.read_excel("pokemon_type_chart.xlsx") # 执行逆透视转换,将攻击属性列转为行维度 melted_df = df.melt( id_vars=["防御方双属性"], # 保留作为标识的列 var_name="攻击方属性", # 转换后攻击属性列的名称 value_name="克制数值" # 转换后克制数值列的名称 ) # 调整列顺序为需求的三维组合顺序 result_df = melted_df[["攻击方属性", "防御方双属性", "克制数值"]] # 导出到新Excel文件 result_df.to_excel("pokemon_type_3d_list.xlsx", index=False)
逻辑验证
18种攻击属性 × 324种防御双属性组合 = 5832行,完全匹配需求的三维组合输出。
内容的提问来源于stack exchange,提问作者tenib67202
相关产品推荐
相关产品推荐

