• 【pandas小技巧】--数据转置


    所谓数据转置,就是是将原始数据表格沿着对角线翻折,使原来的行变成新的列,原来的列变成新的行,从而更方便地进行数据分析和处理。

    pandasDataFrame的转置非常简单,每个DataFrame对象都有一个T属性,通过这个属性就能得到转置之后的DataFrame
    下面介绍几个数据转置常用的场景,感受下转置前后数据展示的区别。

    1. 数据结构调整

    有时候原始数据在行列方向上不太适合某些数据分析和处理需求,需要将其调整为合适的数据结构。
    某些机器学习算法要求输入特征矩阵的行表示样本,列表示特征值,这时候就需要将原始数据表格进行转置。

    比如,随机生成10个样本数据,每个样本有200个特征值:

    import pandas as pd
    
    df = pd.DataFrame(np.random.rand(200, 10))
    df.columns = [
        "SAMPLE_"+s for s in list("ABCDEFGHIJ")
    ]
    df
    

    image.png
    代表一个样本的所有特征的值,样本名称是按字母顺序生成的。
    代表所有样本的一种特征值。

    如果要让列显示各个特征值,行代表一个个样本的话,就需要转置操作。

    df.T
    

    image.png
    转置之后,每代表一个样本的所有特征的值,更有利于观察每个样本的特征。

    2. 数据展示效果

    有时候为了更好地呈现数据,需要将原始数据表格进行转置。
    在制作某些类型的图表或者报告中,将数据表格转置可以更加直观地展示重点数据信息。

    比如,有如下学生成绩数据:

    df = pd.DataFrame(
        np.random.randint(60, 100, (4, 3))
    )
    df.columns = ["语文", "数学", "英语"]
    df.index = ["学生"+s for s in list("ABCD")]
    df
    

    image.png
    这样的视图适合查看每个学生的成绩情况。
    这样的结构以学生为主要视角,可以绘制各个学生的学科堆叠柱状图等。

    转置之后如下:

    df.T
    

    image.png
    这样的视图以学科为主要视角,方便查看每个学科的学习情况。
    这样的结构适合绘制每个学科的学生成绩堆叠柱状图等。

    此外,查看DataFrame概况信息时,也常常会转置之后查看。

    df = pd.DataFrame(np.random.rand(200, 10))
    df.columns = [
        "SAMPLE_" + s for s in list("ABCDEFGHIJ")
    ]
    
    df.describe()
    

    image.png

    转置之后是这样的,可以体会在不同的视角下,数据给我们的感觉。

    df.describe().T
    

    image.png

  • 相关阅读:
    基于springboot的ShardingSphere5.2.1的分库分表的解决方案之分库分表解决方案(二)
    C++初阶 Stack和Queue的介绍和使用
    【Spring MVC】@RequestMapping注解属性
    Springboot 项目中实现文件上传(封装成上传工具模块)
    整理redis写入string类型的缓存的方法
    公众号查题接口 对接教程说明
    黑马头条项目经验&BUG
    NODE基于express 框架和mongoDB完成session认证 和图片上传删除等功能
    [附源码]计算机毕业设计小型银行管理系统Springboot程序
    MyBatis-Flex学习手册
  • 原文地址:https://www.cnblogs.com/wang_yb/p/17633060.html