当前位置: 首页 > news >正文

【pandas】数据透视表【pivot_table】

pivot_table

pandaspivot_table函数是一个非常有用的工具,用于创建一个数据透视表,这是一种用于数据总结和分析的表格形式。

以下是pivot_table的基本语法:

pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

函数参数解释:

  • data: 需要创建透视表的 DataFrame。
  • values: 需要进行聚合的列名。
  • index: 透视表的行标签。
  • columns: 透视表的列标签。
  • aggfunc: 聚合函数或函数列表。默认是 ‘mean’。可以是 ‘sum’, ‘count’, ‘min’, ‘max’, ‘median’, ‘var’, ‘std’ 等,或者是使用 numpy 的函数,例如 np.sum。
  • fill_value: 替换结果表中的缺失值的值。
  • margins: 添加行/列边际(小计和总计)。
  • dropna: 不包括具有空值的列。
  • margins_name: 边际列的名称,默认为 ‘All’。

运用场景

【需求场景描述】:将多行的数据转换为多列
aggfunc不设置参数时默认使用mean对数据进行聚合。
也就是说对于indexcolumns是能够唯一标识数据的话,我们就可以利用pivot_table对数据转置。
以下是我遇到的一个场景实例:
将一个列分类变量,比如stock_id对应多个stock
但是当我们想用所有的stock在同一时刻的数据来预测整体index指数数据。
就需要将长面板数据转换为宽面板数据。从而能够用一个市场整体的数据来预测一个指标走势。

下图是需求示意图

在这里插入图片描述

实现代码

columns_list = [i for i in df.columns if 'id' not in i and i != 'seconds_in_bucket']
df_pitvot = pd.pivot_table(df,index=['date_id','seconds_in_bucket'], columns=['stock_id'],values=columns_list)

转换前的数据

df.head(50)

在这里插入图片描述

转换后的数据
在这里插入图片描述

http://www.lryc.cn/news/242669.html

相关文章:

  • ubuntu22.04中ros2 安装rosbridge
  • 不单一的错误!如何修复Windows 10上“未安装音频输出设备”的错误
  • winlogbeat采集windows日志
  • 关于ElectronVue3中集成讯飞星火AI
  • 初识JVM(简单易懂),解开JVM神秘的面纱
  • Open3D (C++) 计算两点云之间的最小距离
  • 51单片机演奏兰亭序
  • 计算机编程零基础编程学什么语言,中文编程工具构件简介软件下载
  • zookeeper单机版的搭建
  • roseha for windows 11+oracle 11g部署过程
  • 机器学习与因果推断的高级实践 | 数学建模
  • go语言实现高性能自定义ip管理模块(ip黑名单)
  • 检索增强生成架构详解【RAG】
  • 高清动态壁纸软件Live Wallpaper Themes 4K mac中文版功能
  • Kafka配置SASL认证密码登录
  • 两年功能五年自动化测试面试经验分享
  • 大数据基础设施搭建 - Kafka(with ZooKeeper)
  • [JVM] 京东一面~说一下Java 类加载过程
  • 2023 年 认证杯 小美赛 ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析
  • N-134基于java实现捕鱼达人游戏
  • MTK联发科MT6762/MT6763/MT6765安卓核心板参数规格比较
  • 仿ChatGPT对话前端页面(内含源码)
  • js粒子效果(一)
  • 程序员必备工具篇 / 程序员必备基础:Git
  • MacBook使用指南
  • 数据库的事务的基本特性,事务的隔离级别,事务隔离级别如何在java代码中使用,使用MySQL数据库演示不同隔离级别下的并发问题
  • Robust taboo search for the quadratic assignment problem-二次分配问题的鲁棒禁忌搜索
  • Linux:创建进程 -- fork,到底是什么?
  • 基于SpringBoot+vue的token验证
  • Clickhouse设置多磁盘存储策略