python字符串行列转换_Excel、SQL、Python分别实现行列转换
目录:
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分别实现行列转换相关推荐
- python字符串split_「干货」Python字符串中的split方法
前面的文章我们有简单的介绍过什么是字符串.Python字符串的输入方式.Python字符串的拼接方法等今天我们主要分享一下Python字符串中split方法! Python字符串中的方法有很多种,其中 ...
- python字符串去掉空行_从python中的字符串中删除空格
python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip()str. ...
- python字符串转date_详解python 字符串和日期之间转换 StringAndDate
python 字符串和日期之间转换 StringAndDate 这里给出实现代码,直接可以使用.大家可以看下. 实例代码: ''''' Created on 2013-7-25 @author: Ad ...
- python字符串操作_浅谈Python 字符串特有的操作方法
来源:(微信号:python_cat)" 正如<你真的知道Python的字符串是什么吗?>所写,Python中字符串是由Uniocde编码的字符组成的不可变序列,它具备与其它序列 ...
- python字符串算式加减运算(Python字符串运算)
python 时间字符串相减 fromdatetimeimportdatetime a='12:13:50' b='12:28:21' time_a=datetime.strptime(a,'%H:% ...
- python字符串拼接数字_解决Python中字符串和数字拼接报错的方法
解决Python中字符串和数字拼接报错的方法 前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # co ...
- python 字符串分割_如何使用python语言split方法对不同字符串分割
在JavaScript中,可以使用split()将字符串分割成字符串数组:而在python语言中,split()方法也可以将字符串进行分割,分割之后的结果放置在列表中.下面利用几个实例说明split( ...
- python字符串的内部函数_「Python」字符串操作内置函数
目录: capitalize casefold center count encode decode endswith expandtabs find format format_map index ...
- python字符串实例_慢步学python,编程基础,字符串类型例子及输出
想了解python的安装及运行的可以看慢步之前写的文章. 今天继续python编程基础内容,字符串类型数据. python里面主要的数据类型是数值类型和字符串类型.计算机可以进行运算的是数值,字符串不 ...
- python字符串换行连接_python入门 python字符串换行显示、字符串太长\连接多行
#coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 缩进 换行 """ &qu ...
最新文章
- 机器对工作、生产力及全球经济的影响
- 爱是相互的,这样才是平衡
- P2280 [HNOI2003]激光炸弹
- Cocos2d x 2 0 从HelloWorld入手
- linux除法脚本,经典shell-脚本实例
- wordpress插件列表
- Java开发笔记(六十三)双冒号标记的方法引用
- C语言实现24点小游戏,C语言解24点游戏程序
- LinuxQQ自动崩溃退出的解决
- win7仿win98电脑主题
- 软件开发中需求分析的过程、层次、阶段、重点都在这里
- js 浏览器窗口活跃监听
- 各种数据类型的取值范围(总结全)
- Thinkpad E450c开启Intel virtual technology
- 数据的力量 驰援疫情丨对抗新型肺炎,志愿者招募
- 现代前端技术解析读书笔记
- ORA-1628: max # extents 32765 reached for rollback segment 错误处理
- C语言-XLSX基础数据解析(需借助libxml2库)
- 国庆 深圳游玩 路线规划之南山区
- 交互式电子沙盘GIS 虚拟数字沙盘M3D GIS教程