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

pandas中DataFrame的转置非常简单,每个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


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

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

df.T


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

2. 数据展示效果

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

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

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


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

转置之后如下:

df.T


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

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

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

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

df.describe().T

【pandas小技巧】--数据转置的更多相关文章

  1. pandas小技巧

    1. 删除列 import pandas as pd df.drop("Unnamed: 0", axis=1, inplace=True) 2. 转换列的格式 df[" ...

  2. pandas 小技巧

    1.找出某个字段包含某字符串的行: my_df[my_df['col_B'].str.contains('大连') > 0]或者 my_df[my_df['col_B'].apply(lambd ...

  3. Java在处理大数据的时候一些小技巧

    Java在处理大数据的时候一些小技巧 发布时间:2013-05-09 00:00:00 来源:中国IT实验室 作者:佚名   关键字:Java 众所周知,java在处理数据量比较大的时候,加载到内存必 ...

  4. MySQL平滑删除数据的小技巧【转】

    今天接到一位开发同学的数据操作需求,需求看似很简单,需要执行下面的SQL语句: delete from test_track_log where log_time < '2019-1-7 00: ...

  5. Pandas一些小技巧

    Pandas有一些不频繁使用容易忘记的小技巧 1.将不同Dataframe写在一个Excel的不同Sheet,或添加到已有Excel的不同Sheet(同名Sheet会覆盖) from pandas i ...

  6. sql server 小技巧(2) 删除sql server中重复的数据

    with list_numbers as ( select Name, AuthorOrTime, Url, Price, EstimatePrice, Size, Category, ROW_NUM ...

  7. sql server 小技巧(1) 导入csv数据到sql server

    1. 右击 DataBaseName,选择 Tasks->Import Data 2. 选择数据源: Flat File Source , 选择一个csv文件 Advance: 选择所有的列,改 ...

  8. sql server 小技巧(7) 导出完整sql server 数据库成一个sql文件,包含表结构及数据

    1. 右健数据库 –> Tasks –> Generate Scripts   2. 选择所有的表   3. 下一步,选择Advanded, Types of data to script ...

  9. 今天整理了几个在使用python进行数据分析的常用小技巧、命令。

    提高Python数据分析速度的八个小技巧 01 使用Pandas Profiling预览数据 这个神器我们在之前的文章中就详细讲过,使用Pandas Profiling可以在进行数据分析之前对数据进行 ...

  10. 8条github使用小技巧

    1 简介 作为全球最大的开源及私有软件项目托管社区平台,github可以显著地帮助从事编程相关工作的人员提升自己的技术水平,也是费老师我日常最常浏览学习的技术类网站. github为了使得其使用更加便 ...

随机推荐

  1. 2022-10-28:以下go语言代码输出什么?A:false false;B:true false;C:true true;D:false true。 package main import “f

    2022-10-28:以下go语言代码输出什么?A:false false:B:true false:C:true true:D:false true. package main import &qu ...

  2. 2020-10-25:go中channel的close流程是什么?

    福哥答案2020-10-25:

  3. 2022-03-30:有m个同样的苹果,认为苹果之间无差别, 有n个同样的盘子,认为盘子之间也无差别, 还有,比如5个苹果如果放进3个盘子, 那么1、3、1和1、1、3和3、1、1的放置方法,也认为是

    2022-03-30:有m个同样的苹果,认为苹果之间无差别, 有n个同样的盘子,认为盘子之间也无差别, 还有,比如5个苹果如果放进3个盘子, 那么1.3.1和1.1.3和3.1.1的放置方法,也认为是 ...

  4. 【C++】requires关键字简介

    requires 是 C++20 中引入的一个新关键字,用于在函数模板或类模板中声明所需的一组语义要求,它可以用来限制模板参数,类似于 typename 和 class 关键字. requires关键 ...

  5. pages.json 文件:globalStyle 全局配置

    globalStyle 用于设置应用的状态栏.导航条.标题.窗口背景色等. 属性 类型 默认值 描述 平台差异说明 navigationBarBackgroundColor HexColor #F7F ...

  6. tkinter的Entry设置为不可编辑状态

    前 首先我们知道,tkinter中有许许多多的控件,其中使用频繁的控件之一就是Entry(输入框),那么怎么设置它为不可编辑状态呢? state选项 一般我们在写Entry的时候只传入了一个maste ...

  7. 使用CNI网络插件(calico)实现docker容器跨主机互联

    目录 一.系统环境 二.前言 三.CNI网络插件简介 四.常见的几种CNI网络插件对比 五.Calico网络之间是如何通信的 六.配置calico让物理机A上的docker容器c1可以访问物理机B上的 ...

  8. Elasticsearch 6.x 配置search-guard 插件

    前言   es之前版本一直无用户验证功能,不过官方有提供一x-pack,但是问题是付费.在es的6.3.2版本中,已经集成了x-pack,虽然es团队已经对x-pack开源,但是在该版本中如果需要使用 ...

  9. 前端学习C语言 - 函数和关键字

    函数和关键字 本篇主要介绍:自定义函数.宏函数.字符串处理函数和关键字. 自定义函数 基本用法 实现一个 add() 函数.请看示例: #include <stdio.h> // 自定义函 ...

  10. Go应用性能优化的8个最佳实践,快速提升资源利用效率!

    作者|Ifedayo Adesiyan 翻译|Seal软件 链接|https://earthly.dev/blog/optimize-golang-for-kubernetes/ 优化服务器负载对于确 ...