今天在看Kettle的视频中发现了行列转换的方式,所以准备总结一下Excel中几种行列转换的方法。

就是实现如下的效果。

python二维列表转换为txt_字段

一维表转二维表

方法一:Excel透视列

  1. 选中数据源→数据→从表格
  2. 选中想要更改为列的字段(这里这里是将星期改更改为列,所以选中的是星期列)→转换→透视列
  3. 在跳出的弹窗中值列选择看你需求(这边就是工作小时)→打开高级选项→聚合值函数也是看你需求,这边选择不聚合
  4. 关闭并上载即ok

方法二:Excel数据透视表

  1. 选中数据→插入→数据透视表
  2. 姓名拖入行,星期拖入列,工作小时拖入值
  3. 完成

方法三:Python

import pandas as pd
data =pd.read_excel("./行列转换.xlsx",sheet_name='Sheet1')
data2 = pd.pivot_table(data,index='姓名',columns='星期')
data2

python二维列表转换为txt_excel_02


方法四:Kettle

python二维列表转换为txt_数据_03

  1. Excel输入
  2. 排序,默认设置即可(Kettle中有很多操作之前都是需要排序的)
  3. 列转行(数据字段是原分列字段的列名,关键字段是原分列字段的值,目标字段是新分列的列名,相当于在这一步进行映射,注意要填写字段类型,不然会报错)
  4. Excel输出(如果要输出的是xlsx文件,则需要选择Microsoft Excel输出)
  5. 完成

方法五:SQL

二维表转一维表

方法一:Excel逆透视列

  1. 选中数据→数据→从表格
  2. 选中分列后邮件→逆透视列
  3. 关闭并上载

方法二:Kettle

python二维列表转换为txt_数据_04

  1. Excel输入
  2. 排序
  3. 行转列,同样需要映射,字段是源数据中的分列列名,Key字段是合并后的列名,Key值是合并后列的值
  4. Excel输出