excel行转列_行列转换的Mysql,Excel,Python解法

微信群又双叕有新问题了,如图所示,两个表格的转换。

36b3f15f0eeb1e24441ba36fca3825f9.png

首先跟大家分享一下我的记忆口诀:

  1. 行转列逆透视
  2. 列转行透视

我们用Excel、Python、SQL分别实现一下上图的要求。

Excel

使用到Excel中的Power Query,只有Excel2016以上的版本才有,注意版本号。

行转列

全选数据>数据选项卡>自表格/区域

87ccd92f54bfb4244d6af90a8df70c4a.png

由于要转换的列是由"/"分割的,所以我们需要先拆分列。选中需要拆分的列>右键>拆分列>按分隔符。

95282687704d2adbdffdf35328ddff24.png

选择自定义>输入"/">选择每次出现分隔符时>确定

b49ef748b367d7e0b18175c79db3d178.png

选中标题行>右键>逆透视其他列 也可以多选中值列选择逆透视

86467c4bf9cb57374d86a5c9fe8b058d.png

删除多于列>关闭并上载,完成。

3b34835717a29cd73282b5c560dae871.png

列转行

这边暂且只想到添加辅助列来实现该效果,有更好的方法欢迎在评论区留言。

同样多选进入Power Query界面,添加列>自定义列>输入"=[值]">确定

相当于是复制一列值,列名自定义,自定义公式内的值根据原表列名来。

f6234e89d203e5980f9c00a5f57e9e41.png

选中“值”>透视列>“值列”选择自定义>聚合值函数选择不要聚合>确定

第一步也可以选择“自定义”列,如果这样操作的话,在第三步就要选择"值",这里列名没有起好,请大家看清楚。

8bc59471c88ca59eb1c456c494d7e8a6.png

选中透视出来的列>右键>合并列>自定义分隔符>确定

db723e7f105b76ec3adb17854822cbc1.png

选中合并后的列>右键>替换值>要查找的列输入"//">确定>关闭并上载

31a511b560a53f777eb92d4fa78b08e2.png

完成 。

893dea4fb8ad21867c67556c165d4f86.png

Python

行转列

import 

8e9054c9ebe779c8870158ac55286ad2.png
# 根据'/'拆分为列表

6582d32e1e22ff0ec743f744854fd23a.png

列转行

df_new

e202b07e189cdf891f241560b4426b67.png
explode()函数在pandas0.25.0之后才支持,除了这个方法俺想不到别的方法了。

SQL

行转列

-- 建表,插入数据

ec992f108fb0418450d45cfb3ef3049e.png
SELECT 

3000012d7a7eecb2e1cc1072f3a242af.png

列转行

用刚刚查询出来的结果我们再创建一个temp2。

DROP 

55444c8e170b12ce06cc5c4e969d881b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>