热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【Python】数据分析:pd.pivot_table

很久没有写数据处理的相关啦。今天正好遇到这个相关问题,用到是数据透视表,所以过来做个笔记,也复习一下啦。importpandasaspddf=pd.D

很久没有写数据处理的相关啦。今天正好遇到这个相关问题,用到是数据透视表,所以过来做个笔记,也复习一下啦。

import pandas as pd
df = pd.DataFrame({'timestamp': ['11:00', '11:00', '12:00', '12:00'],
'type': ['a', 'b', 'a', 'b'],
'v': [10, 2, 20, 8]
})

输出:

timestamp type v
0 11:00 a 10
1 11:00 b 2
2 12:00 a 20
3 12:00 b 8

上面是一个简单的数据表。现在需要在此基础之上换成:

timestamp a b
0 11:00 10 2
1 12:00 20 8

以timestamp为index 和上表当中的type值为columns,那么这其实是相当于对原来的表进行一个数据透视,也可以理解成按照要求进行数据表的动态重构。

那么在代码汇中如何操作呢?

pivot = pd.pivot_table(data=df, columns=df['type'], index=df['timestamp'])
df2 = pivot.reset_index()
print(df2, '\n')

通过pd.pivot_table(data, index)实现以给定index的重构, 

timestamp v
type a b
0 11:00 10 2
1 12:00 20 8

然而这样得到的数据表表头部分其实是多重索引的,也就是这样:

MultiIndex([('v', 'a'),
            ('v', 'b')],
           names=[None, 'type']) 

这样通常是不能够直接进行后面数据处理操作的。因此这里建议将此重新保存为dataFrame,用到的函数可以是

pivot.reset_index()

然后再根据需要重新定义表头,

columns = df["type"].unique().tolist() #获取列的不重复值,并保存为list
columns = ['timestamp'] + columns # list的合并,直接 +
df2.columns = columns #定义dataframe的列名
print(df2)

得到的结果:

timestamp a b
0 11:00 10 2
1 12:00 20 8

哈哈,虽然问题很简单,复习了一下,非常开心! 


推荐阅读
  • 本文介绍如何通过 Python 的 `unittest` 和 `functools` 模块封装一个依赖方法,用于管理测试用例之间的依赖关系。该方法能够确保在某个测试用例失败时,依赖于它的其他测试用例将被跳过。 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 探讨Redis的最佳应用场景
    本文将深入探讨Redis在不同场景下的最佳应用,包括其优势和适用范围。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 使用多项式拟合分析淘宝双11销售趋势
    根据天猫官方数据,2019年双11成交额达到2684亿元,再次刷新历史记录。本文通过多项式拟合方法,分析并预测未来几年的销售趋势。 ... [详细]
  • 本文详细介绍了如何在 Django 项目中使用 Admin 管理后台,包括创建超级用户、启动项目、管理数据模型和修改用户密码等步骤。 ... [详细]
  • 利用Python进行学生学业表现评估与成绩预测分析
    利用Python进行学生学业表现评估与成绩预测分析 ... [详细]
  • 如何高效启动大数据应用之旅?
    在前一篇文章中,我探讨了大数据的定义及其与数据挖掘的区别。本文将重点介绍如何高效启动大数据应用项目,涵盖关键步骤和最佳实践,帮助读者快速踏上大数据之旅。 ... [详细]
  • PHP开发人员薪资水平分析:工程师平均工资概况
    PHP开发人员薪资水平分析:工程师平均工资概况 ... [详细]
  • Hired网站最新发布的开发者调查显示,Python 语言继续受到开发者的广泛欢迎,而 PHP 则被评为最不受欢迎的语言。该报告基于 Hired 数据科学团队对 13 个城市中 9800 名开发者的调查数据,深入分析了当前编程语言的使用趋势和开发者偏好。此外,报告还探讨了其他热门语言如 JavaScript 和 Java 的表现,并提供了对技术招聘市场的洞见。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 春节期间如何利用团队协作平台高效应对突发任务?
    随着2023年农历兔年的到来,许多企业纷纷将线下工作转移到云端,积极部署假期期间的工作计划。员工们也将迎来长达十天至半个月的远程办公。无论是在家团聚还是外出旅行,如何高效应对突如其来的紧急任务成为关键。通过充分利用团队协作平台,企业可以确保信息的及时传递与任务的快速响应,从而保障工作的连续性和效率。 ... [详细]
author-avatar
jawshan212
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有