今天在看Kettle的视频中发现了行列转换的方式,所以准备总结一下Excel中几种行列转换的方法。
就是实现如下的效果。
一维表转二维表
方法一:Excel透视列
- 选中数据源→数据→从表格
- 选中想要更改为列的字段(这里这里是将星期改更改为列,所以选中的是星期列)→转换→透视列
- 在跳出的弹窗中值列选择看你需求(这边就是工作小时)→打开高级选项→聚合值函数也是看你需求,这边选择不聚合
- 关闭并上载即ok
方法二:Excel数据透视表
- 选中数据→插入→数据透视表
- 姓名拖入行,星期拖入列,工作小时拖入值
- 完成
方法三:Python
import pandas as pd
data =pd.read_excel("./行列转换.xlsx",sheet_name='Sheet1')
data2 = pd.pivot_table(data,index='姓名',columns='星期')
data2
方法四:Kettle
- Excel输入
- 排序,默认设置即可(Kettle中有很多操作之前都是需要排序的)
- 列转行(数据字段是原分列字段的列名,关键字段是原分列字段的值,目标字段是新分列的列名,相当于在这一步进行映射,注意要填写字段类型,不然会报错)
- Excel输出(如果要输出的是xlsx文件,则需要选择Microsoft Excel输出)
- 完成
方法五:SQL
二维表转一维表
方法一:Excel逆透视列
- 选中数据→数据→从表格
- 选中分列后邮件→逆透视列
- 关闭并上载
方法二:Kettle
- Excel输入
- 排序
- 行转列,同样需要映射,字段是源数据中的分列列名,Key字段是合并后的列名,Key值是合并后列的值
- Excel输出