# Python 行转列拼接实现指南
## 1. 整体流程
我们将通过以下步骤来实现 Python 中的行转列拼接:
```mermaid
journey
    title 行转列拼接实现流程
    section 步骤
        开始 --> 数据导入
        数据导入 --> 数据转置
        数据转置 --> 数据拼接
        数据拼接 --> 结束            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-24 04:36:21
                            
                                68阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            问题:关于Mysql 的分级输出问题情景:学校里面记录成绩,每个人的选课不一样,而且以后会添加课程,所以不需要把所有课程当作列。数据表里面数据如下图,使用姓名+课程作为联合主键(有些需求可能不需要联合主键)。本文以MySQL为基础,其他数据库会有些许语法不同。数据库表数据:处理后的结果(行转列):方法一:这里可以使用Max,也可以使用Sum;注意第二张图,当有学生的某科成绩缺失的时候,输出结果为N            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-23 14:03:05
                            
                                537阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言 有时会遇到没有遵守第一范式设计模式的业务表。即一列中存储了多个属性值。如下表pkvalue1ET,AT2AT,BT3AT,DT4DT,CT,AT一般有这两种常见需求(测试数据见文末)得到所有的不重复的值,如valueATBTCTDTETSQL如下:select distinct(substring_index(substring_index(a.col,',',b.help_topic_id            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-02 07:48:42
                            
                                405阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录1 DataFrame数据的行转列1.1 需求1.2 准备数据1.3 使用 Pivot 行转列1.4 初次处理的结果1.5 下一步2 Spark 中数据转换与处理2.1 测试数据2.2 清洗过滤2.3 DataSet 转 RDD2.4 RDD 转 DataFrame2.5 DataFrame 注册为临时表2.6 完整代码  1 DataFrame数据的行转列1.1 需求在做数据处理时我们可能            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-09 09:07:15
                            
                                198阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            存在表score,记录学生的考试成绩,如下图所示: 现要求以 学生姓名,语文            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-03-24 11:34:20
                            
                                411阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            行列转换常见场景由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式。即同一个列中存储了多个属性值(具体结构见下表)。 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果。表数据:IDValue1tiny,small,big2small,medium3tiny,...
                    
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-08-08 10:41:40
                            
                                552阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            案例背景:按周统计周中每天销售额。要求结果如下图所示:常用方式如下:【1】子查询SELECT    week_year,    (                
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-06-11 00:12:21
                            
                                375阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            转自:http://blog.csdn.net/zhoushengchao/article/details/7321688
在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。
http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?9            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2013-01-19 10:47:53
                            
                                1260阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            使用JSON_ARRAYAGG函数进行行转列            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2020-05-02 19:49:40
                            
                                1258阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                             
         
            
            
            
            第一种方法:使用自连接的方法实现行转列 (1)第一步: 第二步: 第三步: 第四步: 第二种方法:使用CASE方法实现行转列            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-12-28 10:25:00
                            
                                235阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            文章目录创建数据表添加测试数据数据库数据显示行转列实现效果在日常开发的过程中,我们时长会遇到这样的数据库结构这种结构在框架开发可以使用一对多进行直接查询,但是我们可以使用行转列来实现创建数据表CREATE TABLE TABLE_A (    NAME VARCHAR2(20),    SUBJECT VARCHAR2(20),    SCORE NUMBER(22,0)); ...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2019-07-23 11:48:24
                            
                                779阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            利用SUM(IF()) 生成列 + UNION 生成汇总行,并利用 IFNULL将汇总行标题显示为 Total1234567891011121314SELECT userid,SUM(IF(`subject`='语文',score,0)) AS 语文,SUM(IF(`subject`='数学',score,0)) AS 数学,SUM(IF(`subject`='英语',score,0)) AS 英            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-10-16 22:25:05
                            
                                31阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ## MySQL 行转列
在数据库中,有时候我们需要将一些行数据转换为列数据,这在处理数据透视表、报表生成等场景下非常常见。MySQL 提供了一些函数和技巧来实现行转列的功能。本文将介绍如何使用 MySQL 来实现行转列,并给出相应的代码示例。
### 1. 使用 GROUP BY 和 CASE WHEN
在 MySQL 中,我们可以使用 GROUP BY 和 CASE WHEN 语句来实现            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-24 04:54:52
                            
                                714阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            导入到 25city_csv 表中SELECT `cityName`,`citycode`,`districtName`,`regionName`,`cname`,`id`,`1`,SUM(CASE `mon` WHEN '201901' THEN `pricepingmi` ELSE 0 END) AS '201901',SUM(CASE `mon` WHEN '201902' TH...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-04-21 20:38:20
                            
                                417阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            最近遇到一需求原始数据如下:mysql> select id,sdkname,sid,date,total_count from u1ge_query_log;+------+----------------+------+------------+-------------+| id   | sdkname        | sid &nb            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2017-06-27 12:50:55
                            
                                1799阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            CREATE TABLE test( paytype VARCHAR(10),goods VARCHAR(10),money INT) ENGINE=INNODB; INSERT INTO test VALUES('微信','商品1',80);  INSERT INTO test VALUES('支付宝','商品2',120);  INSERT INTO test VALUES('支付宝'...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-08-02 14:53:40
                            
                                175阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            mysql行转列            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-09-15 17:21:11
                            
                                609阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            mysql 行列转换 ,在项目中应用的极其频繁,尤其是一些金融项目里的报表。其中最为头痛的就是多行转多列,动态的列行转换。最近在研究这些行里转换,还是从最为简单的行列转换开始。sql 脚本-- 创建表  学生表
CREATE TABLE `student` (
    `stuid` VARCHAR(16) NOT NULL COMMENT '学号',
    `stunm` VARCHAR(20            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-24 23:06:27
                            
                                185阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            工作中经常用到的mysql行转列和列转行总结一、行转列创建数据表和创建数据CREATE TABLE `student` (
  `name` varchar(64) DEFAULT NULL COMMENT '名字',
  `subject` varchar(64) DEFAULT NULL COMMENT '科目',
  `score` float DEFAULT NULL COMMENT '分            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-21 13:12:52
                            
                                143阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            采用case函数进行行转列:1、第一步mysql> select * from a;+----+--------+| id   | name   |+----+--------+|  1    | 张三   ||  2    | 李四   ||  3    | 王五   |+----+--------+3 row            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-15 08:14:28
                            
                                1072阅读