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

使用jdframe进行数据处理

1.引言

在数据分析过程中,我们经常需要对数据进行分组、排序和排名等操作。本文将以一段Java代码为例,演示如何使用Java结合第三方库对用户数据进行处理。我们将实现对用户数据的分组、排序以及多种排名方式的计算。

2.依赖

        <dependency><groupId>io.github.burukeyou</groupId><artifactId>jdframe</artifactId><version>0.1.7</version></dependency>

3.示例代码

public class Main {public static void main(String[] args) {// 获取用户集合List<User> users = getUserList();// 打印数据SDFrame.read(users).show();// 按照性别分组,按照年龄升序排列,计算每组的dense_rank(稠密排名)值,并赋值给value字段SDFrame.read(users).window(Window.groupBy(User::getGender).sortAsc(User::getAge)).overDenseRankS(User::setDenseRank).show();// 按照性别分组,按照年龄升序排列,计算每组的rank(排名)值,并赋值给value字段SDFrame.read(users).window(Window.groupBy(User::getGender).sortAsc(User::getAge)).overRankS(User::setRank).show();// 按照性别分组,按照年龄升序排列,计算每组的percent_rank(百分比排名)值,并赋值给value字段SDFrame.read(users).window(Window.groupBy(User::getGender).sortAsc(User::getAge)).overPercentRankS(User::setPercent).show();// 按照性别分组,按照年龄升序排列,计算每组的cume_dist(累计分布)值,并赋值给value字段SDFrame.read(users).window(Window.groupBy(User::getGender).sortAsc(User::getAge)).overCumeDistS(User::setCumeDist).show();// 按照性别分组,按照年龄升序排列,计算每组的ntile(分成N等份)值,并赋值给value字段SDFrame.read(users).window(Window.groupBy(User::getGender).sortAsc(User::getAge)).overNtileS(User::setNtile, 4).show();// 按照性别分组,按照年龄升序排列,计算每组的lag值,并赋值给value字段SDFrame.read(users).window(Window.groupBy(User::getGender).sortAsc(User::getAge)).overLagS(User::setLag,User::getAge, 1).show();}private static List<User> getUserList() {List<User> users = new ArrayList<>();//创建对象User user1 = new User(1, "张三", 25, "北京市海淀区", "13812345678", "13812345678","男");User user2 = new User(2, "李四", 30, "上海市浦东区", "13912345678", "13912345678","男");User user3 = new User(3   , "王五", 30, "上海市浦东区", "13912345678", "13912345678","女");User user4 = new User(4, "赵六", 28, "深圳市南山区", "13512345678", "13512345678","男");User user5 = new User(5, "田七", 23, "上海市浦东区", "13912345678", "13912345678","女");User user6 = new User(6, "马八", 28, "广州市天河区", "13612345678", "13612345678","男");//添加到集合中users.add(user1);users.add(user2);users.add(user3);users.add(user4);users.add(user5);users.add(user6);return users;}
}

4.结论

通过上述代码示例,我们可以看到使用Java进行数据处理是多么方便。使用合适的第三方库,可以轻松实现复杂的数据操作,如分组、排序和排名。无论是在数据分析、报告生成还是其他领域,这些技能都是非常有价值的。

 

相关文章:

  • 【C++笔记】初始模版和STL简介
  • 2024年云南省职业院校技能大赛-云计算应用
  • 隧道多并发IP代理:解锁网络新体验
  • Mac下利用vscode配置latex
  • 【android10】【binder】【3.向servicemanager注册服务】
  • vue框架学习 -- 日历控件 FullCalendar 使用总结
  • 汇总3个工作必备的Python自动化代码!完整代码分享!
  • 微信小程序开发系列之-实战搭建一个简单的待办事项小程序
  • Footprint Growthly Quest 工具:赋能 Telegram 社区实现 Web3 飞速增长
  • 使用AT command 修改手机APN
  • GB/T28181规范解读和技术实现
  • ArduSub程序学习(11)--EKF实现逻辑①
  • 鸿蒙 OS 开发单词打卡 APP 项目实战 20240922 笔记和源码分享
  • 数据链路层 ——MAC
  • 小柴冲刺软考中级嵌入式系统设计师系列二、嵌入式系统硬件基础知识(3)嵌入式系统的存储体系
  • [NodeJS] 关于Buffer
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • HTTP请求重发
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • Java 网络编程(2):UDP 的使用
  • rabbitmq延迟消息示例
  • Spark学习笔记之相关记录
  • vue的全局变量和全局拦截请求器
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 猴子数据域名防封接口降低小说被封的风险
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数据科学 第 3 章 11 字符串处理
  • 算法-图和图算法
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 责任链模式的两种实现
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 大数据全解:定义、价值及挑战
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • $LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams
  • (Git) gitignore基础使用
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (精确度,召回率,真阳性,假阳性)ACC、敏感性、特异性等 ROC指标
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)JAVA中的堆栈
  • ./configure,make,make install的作用
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .Net 基于.Net8开发的一个Asp.Net Core Webapi小型易用框架
  • .net项目IIS、VS 附加进程调试