024—pandas 将一列数据等份变形

前言

今天我们将一个 Series 序列数据转为 DataFrame结构。我们将用么 pd.cut() 对数据进行分箱,也会用到 NumPy 的 np.reshape() 对阵列数据进行变形。接下来我们看看具体的需求,再分析一下解决思路,最后用代码实现它。

需求:

需要转为以下形式。对数列整体等分划为三部分,每个部分有两列,前四个在第一列,后四个在第二列,同时对每份数据指定了同名的索引标签。

思路:

  • 为了方便后续操作,可以将数据先转为 DataFrame,这样我们就可以新增加辅助列了。由于要对现有数据等份划分,我们可以我是利用
    pd.cut() 数据分箱来完成,对它指定箱子数量,可以帮助我们进行平均划分,为了方便识别我们在分箱后对每个箱子的标签进行指定。
  • 接下来,按箱子的标签进行分组,每个组就是要分在一起的数据,我们写一个函数对这些数据进行处理,拼接成想要的数据格式。
  • 处理分组的函数可以这样设计,由于它接收的数据只有一列,我们将它 用 NumPy 的 np.reshape()
    进行形状变化,变化后构造为 DataFrame,同时给出列和行的标签值。

二、使用步骤

1.引入库

代码如下(示例):

import pandas as pd
import numpy as np

2.读入数据

代码如下(示例):

ser = pd.Series(range(1, 25))
ser

在这里插入图片描述

#我们将上述的思路进行代码实现。先将 Series 转为 DataFrame,列名为 x,用 pd.cut() 增加 y 辅助列,用来标识要分在一起的值:
(ser.to_frame('x') # 将 Series 转为 DataFrame# 增加标识,划分为三组.assign(y=pd.cut(ser.index, bins=3, labels=[*'123']))
)

截图未全

#接下来写分组处理函数:
def reshape_as_df(grp: pd.DataFrame):data = np.reshape(grp.x.to_numpy(), [4, 2], order='F')return pd.DataFrame(data,index=[*'ABCD'],columns=[*'AB'])
# grp 参数是先个分组的 DataFrame 数据,它只有一列 x,索引为 y,先将 x 转为 array 类型传入 np.reshape() 进行形状的变化,
# 这里我们变为 4x2(四行两列),用 order 指定 Fortran-like 索引顺序,这样数据变形的排序就是按列方向的。# 最后将变形后的数据构造为 DataFrame,指定行列返回。
#最后分组并应用这个函数,最终代码为:
def reshape_as_df(grp: pd.DataFrame):data = np.reshape(grp.x.to_numpy(), [4, 2], order='F')return pd.DataFrame(data,index=[*'ABCD'],columns=[*'AB'])# 最终代码
(ser.to_frame('x') # 将 Series 转为 DataFrame# 增加标识,划分为三组.assign(y=pd.cut(ser.index, bins=3, labels=[*'123'])).groupby('y') # 分组.apply(reshape_as_df) # 应用函数
)

在这里插入图片描述

总结

以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[MS5146T替代ADS1246T、MS5147替代ADS1247、MS5148T替代ADS1248] 2kSPS、24bit Σ-Δ ADC

[MS5146T替代ADS1246T、MS5147替代ADS1247、MS5148T替代ADS1248] 2kSPS、24bit Σ-Δ ADC 主要特点 ◼ 可编程转换速率:最高 2kSPS ◼ 集成输入多路选择器 ◼ PGA 噪声: 70nV(RMS)PGA128 ◼ 集成双路匹配可编程电流源 ◼ 集成低温漂 2.048…

flink实战--Flink任务资源自动化优化

背景 在生产环境Flink任务资源是用户在实时平台端进行配置,用户本身对于实时任务具体配置多少资源经验较少,所以存在用户资源配置较多,但实际使用不到的情形。比如一个 Flink 任务实际上 4 个并发能够满足业务处理需求,结果用户配置了 16 个并发,这种情况会导致实时计算资…

GEE图像可视化常用函数

目录 图层操作Map.addLayer()Map.centerObject() 直方图ui.Chart.image.histogram() 图层操作 Map.addLayer() Map.addLayer 是 Google Earth Engine 中用于向地图添加图层的方法。…

C语言:数组、字符串知识点整理:

数组:(长度的计算) 补充:数组长度sizeof(arr)/sizeof(arr[0]) 注意:!!!不适用于当arr 充当形参时(函数传参)!!! 因为函数…

【Angular】CLI命令总结

显示版本:ng version 简写:ng v 显示帮助:ng --help 新建项目:ng new 项目名 简写:ng n 项目名 切换目录:cd 目录 启动项目:ng serve --open 或者 npm run start 新建组件:ng g…

《Effective Modern C++》- 极精简版 15-21条

本文章属于专栏《业界Cpp进阶建议整理》 继续上篇《Effective Modern C》- 极精简版 5-14条。本文列出《Effective Modern C》的15-21条的个人理解的极精简版本。 Item15、尽量使用constexpr constexpr形容对象 constexpr对象都是const,但是const对象不一定是conste…

七、门控循环单元语言模型(GRU)

门控循环单元(Gated Recurrent Unit,GRU)是 LSTM 的一个稍微简化的变体,通常能够提供同等的效果,并且计算训练的速度更快。 门控循环单元原理图:参考门控循环单元 原理图中各个图形含义: X(t)&a…

C语言逗号运算符(,)

在C语言中,逗号运算符(,)用于在表达式中分隔多个子表达式,并按照从左到右的顺序依次计算这些子表达式。逗号运算符的运算结果是最后一个子表达式的值。 逗号运算符的底层行为是依次计算每个子表达式,并将每个子表达式…

gumbel-softmax如何实现离散分布可微+torch代码+原理+证明

文章目录 背景方法通俗理解什么是重参数化gumbel-softmax为什么是gumbeltorch实现思考 背景 这里举一个简单的情况,当前我们有p1, p2, p3三个概率,我们需要得到最优的一个即max(p1, p2, p3),例如当前p3 max(p1, p2, p3),那么理想…

L1-039 古风排版

中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式&#xff1a; 输入在第一行给出一个正整数N&#xff08;<100&#xff09;&#xff0c;是每一列的字符数。第二行给出一个长度不超过1000的非空字符串&a…

【从部署服务器到安装autodock vina】

注意&#xff1a;服务器 linux系统选用ubuntu 登录系统&#xff0c;如果没有图形化见面可以先安装图形化界面 可以参考该视频 --> linux安装图形化界面 非阿里云ubuntu 依次执行以下命令 sudo apt-get update sudo apt-get install gnome sudo reboot阿里云ubuntu 需多执…

台积电(TSMC)可能将获得美国50亿美元激励资金

彭博社援引知情人士消息称&#xff0c;台积电&#xff08;TSMC&#xff09;为其位于亚利桑那州的工厂可能将获得美国联邦政府提供的超过50亿美元的激励资金。虽然这笔款项尚未正式宣布&#xff0c;因为尚需与这家全球最大芯片代工商最终敲定细节&#xff0c;但金额显然非常可观…

分布式解决方案

目录 1. 分布式ID1-1. 传统方案1-2. 分布式ID特点1-3. 实现方案1-4. 开源组件 1. 分布式ID 1-1. 传统方案 时间戳UUID 1-2. 分布式ID特点 全局唯一高并发高可用 1-3. 实现方案 方案总结&#xff1a; 号段模式 有两台服务器&#xff0c;给第一台服务器分配0-100&#xff0…

this.$watch 侦听器 和 停止侦听器

使用组件实例的$watch()方法来命令式地创建一个侦听器&#xff1b; 它还允许你提前停止该侦听器 语法&#xff1a;this.$watch(data, method, object) 1. data&#xff1a;侦听的数据源&#xff0c;类型为String 2. method&#xff1a;回调函数&#x…

前端手册-实现挂坠灯笼效果

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分…

c#触发事件

Demo1 触发事件 <Window x:Class"WPFExample.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"Title"WPF Example" Height"600" Wi…

如何在Linux上为PyCharm创建和配置Desktop Entry

在Linux操作系统中&#xff0c;.desktop 文件是一种桌面条目文件&#xff0c;用于在图形用户界面中添加程序快捷方式。本文将指导您如何为PyCharm IDE创建和配置一个 .desktop 文件&#xff0c;从而能够通过应用程序菜单或桌面图标快速启动PyCharm。 步骤 1: 确定PyCharm安装路…

企业强化加密安全防护的关键措施与实施路径

一直以来&#xff0c;密码技术都被认为是一种有效保护数据&#xff0c;避免未经授权访问的有效技术。但随着密码分析技术不断改进以及计算能力不断增强&#xff0c;很多曾经有效的加密方案变得不再可靠&#xff0c;加密算法的有效性和可靠性因此受到多方面的挑战。 实现强加密防…

鸿蒙应用开发学习:使用视频播放(Video)组件播放视频和音频文件

一、前言 播放音视频是手机的重要功能之一&#xff0c;近期我学习了在鸿蒙系统应用开发中实现音视频的播放功能&#xff0c;应用中使用到了视频播放(Video)组件&#xff0c;ohos.file.picker&#xff08;选择器&#xff09;。特撰此文分享一下我的学习经历。 二、参考资料 本…

【设计】基于web的会员管理系统

1、引言 设计结课作业,课程设计无处下手&#xff0c;网页要求的总数量太多&#xff1f;没有合适的模板&#xff1f;数据库&#xff0c;java&#xff0c;python&#xff0c;vue&#xff0c;html作业复杂工程量过大&#xff1f;毕设毫无头绪等等一系列问题。你想要解决的问题&am…