目录:

ExcelExcel 实现行转列

Excel 实现列转行

PythonPython 实现行转列

Python 实现列转行

SQLMySQL 实现行转列

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 pd

df = 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实现行转列

SELECT

t1.movie,SUBSTRING_INDEX(SUBSTRING_INDEX(t1.performer,'/',t2.help_topic_id+1),'/',-1) AS t_movie

FROM

temp 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 temp2

SELECT

t1.movie,SUBSTRING_INDEX(SUBSTRING_INDEX(t1.performer,'/',t2.help_topic_id+1),'/',-1) AS t_movie

FROM

temp AS t1

INNER JOIN mysql.help_topic AS t2 ON t2.help_topic_id < LENGTH(t1.performer) - LENGTH(

REPLACE (t1.performer, '/', '')

) + 1

查询语句如下:

-- 使用 GROUP_CONCAT() 函数实现 列转行 拼接SELECT

movie,

GROUP_CONCAT(t_movie SEPARATOR '/') AS performer

FROM

temp2

GROUP BY

movie;转换结果

python字符串行列转换_Excel、SQL、Python分别实现行列转换相关推荐

  1. python字符串split_「干货」Python字符串中的split方法

    前面的文章我们有简单的介绍过什么是字符串.Python字符串的输入方式.Python字符串的拼接方法等今天我们主要分享一下Python字符串中split方法! Python字符串中的方法有很多种,其中 ...

  2. python字符串去掉空行_从python中的字符串中删除空格

    python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip()str. ...

  3. python字符串转date_详解python 字符串和日期之间转换 StringAndDate

    python 字符串和日期之间转换 StringAndDate 这里给出实现代码,直接可以使用.大家可以看下. 实例代码: ''''' Created on 2013-7-25 @author: Ad ...

  4. python字符串操作_浅谈Python 字符串特有的操作方法

    来源:(微信号:python_cat)" 正如<你真的知道Python的字符串是什么吗?>所写,Python中字符串是由Uniocde编码的字符组成的不可变序列,它具备与其它序列 ...

  5. python字符串算式加减运算(Python字符串运算)

    python 时间字符串相减 fromdatetimeimportdatetime a='12:13:50' b='12:28:21' time_a=datetime.strptime(a,'%H:% ...

  6. python字符串拼接数字_解决Python中字符串和数字拼接报错的方法

    解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...

  7. python 字符串分割_如何使用python语言split方法对不同字符串分割

    在JavaScript中,可以使用split()将字符串分割成字符串数组:而在python语言中,split()方法也可以将字符串进行分割,分割之后的结果放置在列表中.下面利用几个实例说明split( ...

  8. python字符串的内部函数_「Python」字符串操作内置函数

    目录: capitalize casefold center count encode decode endswith expandtabs find format format_map index ...

  9. python字符串实例_慢步学python,编程基础,字符串类型例子及输出

    想了解python的安装及运行的可以看慢步之前写的文章. 今天继续python编程基础内容,字符串类型数据. python里面主要的数据类型是数值类型和字符串类型.计算机可以进行运算的是数值,字符串不 ...

  10. python字符串换行连接_python入门 python字符串换行显示、字符串太长\连接多行

    #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 缩进 换行 """ &qu ...

最新文章

  1. 机器对工作、生产力及全球经济的影响
  2. 爱是相互的,这样才是平衡
  3. P2280 [HNOI2003]激光炸弹
  4. Cocos2d x 2 0 从HelloWorld入手
  5. linux除法脚本,经典shell-脚本实例
  6. wordpress插件列表
  7. Java开发笔记(六十三)双冒号标记的方法引用
  8. C语言实现24点小游戏,C语言解24点游戏程序
  9. LinuxQQ自动崩溃退出的解决
  10. win7仿win98电脑主题
  11. 软件开发中需求分析的过程、层次、阶段、重点都在这里
  12. js 浏览器窗口活跃监听
  13. 各种数据类型的取值范围(总结全)
  14. Thinkpad E450c开启Intel virtual technology
  15. 数据的力量 驰援疫情丨对抗新型肺炎,志愿者招募
  16. 现代前端技术解析读书笔记
  17. ORA-1628: max # extents 32765 reached for rollback segment 错误处理
  18. C语言-XLSX基础数据解析(需借助libxml2库)
  19. 国庆 深圳游玩 路线规划之南山区
  20. 交互式电子沙盘GIS 虚拟数字沙盘M3D GIS教程

热门文章

  1. 卡内基梅隆 计算机音乐,卡内基梅隆大学音乐技术专业申请要求
  2. apk软件去广告 傻瓜教程
  3. 英语不好、数学不好能自学编程吗?自学编程出路如何?老程告诉你
  4. 手机Root与刷机教程
  5. 如何用LOTO示波器TDR方法测试电线长度?
  6. 计算机色温调整,电脑色温如何调节
  7. Java面试知识点(零)Java零碎知识点
  8. 报刊订阅管理系统的设计与实现
  9. 怎么禁用计算机usb驱动,电脑设置禁用U盘的四大方法|怎么让电脑无法使用U盘
  10. baidu 地图 3d版 自定义地图样式