目录:

Excel

  • Excel 实现行转列
  • Excel 实现列转行

Python

  • Python 实现行转列
  • Python 实现列转行

SQL

  • MySQL 实现行转列
  • MySQL 实现列转行

一、Excel

Excel 要实现行列转换,需要用到 Power Query,而Power Query 只有Excel 2016以上的版本才有!

1.1 Excel实现行转列

第一步,【Ctrl A 全选数据】-【数据】-【从表格】,创建 Power Query,进入 Power Query界面。

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

第三步,【选择--自定义--】-【输入"/"】-【选择在出现的每个分隔符处】,最后点击【确定】。

第四步,选中第一列,右键-【逆透视其他列】。当然,也可以全选后面的列,选中多列,选择【逆透视】

上一步结果

最后,删除多余的列,关闭并上载,即可完成行转列。

最后实现的结果

1.2 Excel 实现列转行

第一步,【Ctrl A 全选数据】-【数据】-【从表格】,创建 Power Query,进入 Power Query界面。

第二步,添加辅助列。Excel 实现列转换,可以通过【添加辅助列】来实现该效果。而在 Power Query 有多种可以添加辅助列的方法。此处介绍两种方法

法一,通过自定义列,添加辅助列
法二,通过重复列,实现添加辅助列

第三步,进行透视列。【透视列】>【值列,自定义,选中需要透视的列】-【聚合值函数,选择不要聚合】-【确定】。

第四步,合并列。选中透视出来的列,右键,【合并列】-【自定义分隔符】-【确定】 。

最后,选中多余的列,删除!再进行【关闭并上载】。全部搞定!

列转行后的数据

二、Python

2.1 Python 实现行转列

import pandas as pddf = pd.DataFrame([['夏洛特烦恼','沈腾/马丽/尹正/艾伦/王智'],['缝纫机乐队','大鹏/乔杉/古力娜扎/李鸿其/韩童生']],columns=['电影名','部分演员'])
print(df)# 根据'/'拆分为列表
df['部分演员'] = df['部分演员'].str.split("/")      # 转成列表
print(df)df_new = df.explode('部分演员')
print(df_new)

df.explode 函数:将 dataframe 按照某一指定列进行展开,使得原来的每一行展开成一行或多行。( 注:该列可迭代, 例如list, tuple, set)

最后结果

2.2 Python 实现列转行

列转行,使用 groupby 即可实现!

# 实现 列转行
df_new = df_new.groupby(by='电影名', as_index=False).agg("/".join)print(df_new)

最后结果打印

三、SQL

先建表,插入测试数据!

-- 建表,插入数据
DROP TABLE IF EXISTS temp;CREATE TABLE temp ( movie varchar(255), performer varchar(255) );
INSERT INTO temp VALUES ('夏洛特烦恼', '沈腾/马丽/尹正/艾伦/王智'), ('缝纫机乐队', '大鹏/乔杉/古力娜扎/李鸿其/韩童生');select * from temp;

3.1 MySQL实现行转列

SELECTt1.movie,SUBSTRING_INDEX(SUBSTRING_INDEX(t1.performer,'/',t2.help_topic_id+1),'/',-1) AS t_movie
FROMtemp AS t1
INNER JOIN mysql.help_topic AS t2 ON t2.help_topic_id < LENGTH(t1.performer) - LENGTH(REPLACE (t1.performer, '/', '')
) + 1

结果如下:

查询结果

3.2 Mysql 实现列转行

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

CREATE TABLE temp2SELECTt1.movie,SUBSTRING_INDEX(SUBSTRING_INDEX(t1.performer,'/',t2.help_topic_id+1),'/',-1) AS t_movie
FROMtemp AS t1
INNER JOIN mysql.help_topic AS t2 ON t2.help_topic_id < LENGTH(t1.performer) - LENGTH(REPLACE (t1.performer, '/', '')
) + 1

查询语句如下:

-- 使用 GROUP_CONCAT() 函数实现 列转行 拼接
SELECTmovie,GROUP_CONCAT(t_movie SEPARATOR '/') AS performer
FROMtemp2
GROUP BYmovie;

转换结果

前端实现用户自定义建表_Excel、SQL、Python分别实现行列转换相关推荐

  1. python读取erp的数据库_【ERP系统设计】【数据库设计】对数据表重命名和读取建表的SQL语句...

    今天做了一个小Model,就是把另一数据库中的表复制到目标数据库中,但是复制到目标数据库中的表中的记录为空 思路: 1 读取建表的SQL语句 2 通过jdbc执行 3 对新建表进行重新命名 精要: 1 ...

  2. oracle数据库等级,[数据库]Oracle数据库建表并用SQL编程分等级

    [数据库]Oracle数据库建表并用SQL编程分等级 0 2016-06-15 23:00:13 --创建学生表 create table XS_543 ( XH char(6) not null , ...

  3. mysql建库sql语句_mysql建库和建表的sql语句

    需求描述: 在用户提交酒店订单时,需要记录订单信息和订单日志:订单信息包括用户名.订单号.入住时间和离店时间: 订单日志包括谁在什么时候操作了该订单,下订单时需要记录的订单日志为系统在下订单的时间点创 ...

  4. mysql行列转换_Excel、SQL、Python分别实现行列转换

    目录: Excel Excel 实现行转列 Excel 实现列转行 Python Python 实现行转列 Python 实现列转行 SQL MySQL 实现行转列 MySQL 实现列转行 一.Exc ...

  5. datetime建立索引有用吗_超全的数据库建表、SQL、索引规范

    背景 因为工作岗位的原因,负责制定了关于后端组数据库的规约规范,作为所有产品线的规范,历经几版的修改,最终形成下边的文本,规范在整个后端执行也有大半年的时间,对于整个团队在开发阶段就减少不恰当的建表语 ...

  6. 超全的数据库建表、SQL、索引规范

    背景 因为工作岗位的原因,负责制定了关于后端组数据库的规约规范,作为所有产品线的规范,历经几版的修改,最终形成下边的文本,规范在整个后端执行也有大半年的时间,对于整个团队在开发阶段就减少不恰当的建表语 ...

  7. 用python做数据分析(行列转换)

    python行列转换 用reshape是有问题的,因为这是根据一个顺序的数进行遍历的 但是,用下面这个函数就有了对应的操作 C:\Users\Administrator>python Pytho ...

  8. mysql 表转置,数据转置,让行列转换变的如此简单

    数据转置,让行列转换变的如此简单 各位小伙伴,很高兴再次相遇.今天,我们将继续分享和交流关于办公中经常遇到问题.实例的分析和解决问题的方法,目的就是通过不断的学习,提升自身的技能,让办公变的如此简单. ...

  9. mysql建表用的什么语句_mysql建表常用sql语句个人经验分享

    连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@ ...

  10. oracle完整建表,Oracle数据库建表完整sql

    -- CREATE TABLE 创建小程序卡片表 create table GIMDATA.GIM_CLOUD_MINIPROGRAM_CARD ( ID_GIM_CLOUD_MINIPROGRAM_ ...

最新文章

  1. torchvision.transforms 的CenterCrop():在图片的中间区域进行裁剪
  2. js中常用的日期总结
  3. 工业用微型计算机(16)-指令系统(11)
  4. jdbc.properties文件
  5. 在 Centos7 用Jexus服务器 运行.Net Core 只需几步
  6. Google App Engine JAX-RS REST服务
  7. python编辑器_推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者
  8. Python爬取抖音用户相关数据(目前最方便的方法)
  9. 线性代数 矩阵 知识技巧思维导图 [21考研上岸之旅]
  10. U盘中的文件夹被病毒隐藏,生成了同名的.exe后缀的可执行文件
  11. python 英语词汇_【我爱背单词】用Python提炼3000英语新闻高频词汇
  12. 【博客33】使用 “NVI“解决缺省参数绑定问题
  13. 沈阳市房地产市场信息系统数据容灾与异地备份
  14. python读取word文档结构图_Word 有什么技巧,让你相见恨晚?
  15. 深圳租房信息聚类与回归分析
  16. tensorflow 歌曲题材分类
  17. cdr vb 动态定义数组 遍历对象里面包含群组的
  18. 主流数据库的默认隔离级别
  19. 前华为全球高端招聘总监吕昕蔚 | 15年面试上万人的经验分享
  20. 博士毕业论文答辩PPT的基本要点

热门文章

  1. python开发环境规范——pycharm
  2. 微信分享ios 不显示图片和简介问题总结
  3. (摘)老司机也必须掌握的MySQL优化指南
  4. BZOJ4598 [Sdoi2016]模式字符串 【点分治 + hash】
  5. SpringBoot 分布式session
  6. Simulink模块之VCO(压控振荡器)
  7. iOS 最新版 CocoaPods 的安装流程介绍
  8. django mysql socket_django mysql 读写分离
  9. 拓端tecdat|matlab贝叶斯隐马尔可夫hmm模型实现
  10. 拓端tecdat|通过SAS网络分析对人口迁移进行可视化分析