python中pandas模块数据处理小案例
内容目录
- 1. 添加随机日期
- 2. 聚合求和
- 3.聚合求和排序
- 4. 聚合求和排序取前十
- 5. 聚合取极值
- 6. 重新赋值
- 7. 按条件赋值
pandas作为数据处理的得力工具,简便了数据开发过程,之前串联了pandas的使用方法,现在用几个小案例巩固一下常用的pandas方法。
前一章节的pandas使用链接:pandas模块的使用
假设有一个数据文件,是某个网站的点击、下单记录(说明:数据只是模拟案例提供使用,没有任何实际意义)
page click add pay cost
1516609143869 2 8 92 9
假设一行数据如上所示,分别为页面、点击、添加、支付、花费等字段,那么需要实现的功能如下。
1. 添加随机日期
数据缺少日期,为了模拟数据,需要对每行数据增加一个随机日期,要求:日期范围在2023-01-01 至 2023-01-15之间
# TODO 1 : 读入数据到DataFrame
data = pd.DataFrame(pd.read_table(path, sep= ' ', header=None, names=['page','click','add','pay','cost']))
为每行数据增加一个随机日期
# TODO 2 : 增加随机日期,范围在01-01,01-15之间
dates = pd.date_range(start='2023-01-01', end='2023-01-15', periods=len(data))
date_rng_formatted = [date.strftime("%Y-%m-%d") for date in dates]data['dt'] = np.random.choice(date_rng_formatted, len(data))
2. 聚合求和
要求:按照page字段聚合,求click、add、pay的和
# TODO 3 : 每个页面的总共点击、添加、支付、花费总
df_sum = data.groupby('page').agg({'click':'sum','add':'sum','pay':'sum', 'cost':'sum'})
3.聚合求和排序
要求:每个页面的总共点击、添加、支付、花费总量按照点击、添加、支付、花费排序
# TODO 4 : 每个页面的总共点击、添加、支付、花费总量按照点击、添加、支付、花费排序
df_sort = data.groupby('page').agg({'click':'sum','add':'sum','pay':'sum', 'cost':'sum'}).sort_values(['click','add','cost'],ascending=False)
4. 聚合求和排序取前十
这里分为两个类别:
- 聚合求和排序后取全部的前十
# 方法一
# TODO 5 : 每个页面的总共点击、添加、支付、花费总量按照点击、添加、支付、花费排序,取前十
df_sort_get = data.groupby('page').agg({'click':'sum','add':'sum','pay':'sum', 'cost':'sum'}).sort_values(['click','add','cost'],ascending=False).head(10)#方法二
df_sort_get = data.groupby('page').agg({'click':'sum','add':'sum','pay':'sum', 'cost':'sum'}).sort_values(['click','add','cost'],ascending=False).iloc[:10]
- 聚合求和排序后取每个分组的前十
# TODO 6 : 每个页面总共点击、添加、支付的总和排序并取组内前十
df_group_sort_get = data.sort_values(['click','add','cost'], ascending=False).groupby('page').head(5).iloc[:,[0,1,2,3]]
5. 聚合取极值
要求:按照日期,取每个日期里点击量最多的记录
# TODO 7 : 求每日点击总和最多的页面并按照dt字段升序输出
df_dt_page = data.groupby(['page','dt']).agg({'click':'sum'}).sort_values(['click'], ascending=False).groupby('dt').head(1).sort_values('dt')
6. 重新赋值
要求:将每个页面总点击数量不超过100的重新赋值为0
# TODO 8 : 将每个页面总点击数量不超过100的重新赋值为0
data_sum = data.groupby(['page']).agg({'click':'sum'})
data_sum.loc[data_sum['click']<100,'click'] = 0
7. 按条件赋值
要求:将每个页面总点击数量不超过100的重新赋值为0,否则为1,并赋予新列
# TODO 9 : 将每个页面总点击数量不超过100的重新赋值为0,否则为1,并赋予新列
data_sum_tmp = data.groupby(['page']).agg({'click':'sum'})
def func(x):if x['click'] < 100:return 0else:return 1
data_sum_tmp['new_cloumn'] = data_sum_tmp.apply(func, axis=1)
以上列举了几个常用到的pandas处理方法,但是不够全面,在真实使用下肯定用到的方法和技巧会更多,需要多多练习和总结。
相关文章:
python中pandas模块数据处理小案例
内容目录1. 添加随机日期2. 聚合求和3.聚合求和排序4. 聚合求和排序取前十5. 聚合取极值6. 重新赋值7. 按条件赋值pandas作为数据处理的得力工具,简便了数据开发过程,之前串联了pandas的使用方法,现在用几个小案例巩固一下常用的pandas方法。…...
从 X 入门Pytorch——Tensor的自动微分、计算图,常见的with torch.no_grad()机制
这里写目录标题1 Pytorch计算图和自动微分2 将单个数据从计算图中剥离 .detach3 使用with torch.go_grad(): 包含的代码段不会计算微分1 Pytorch计算图和自动微分 从功能上理解: 计算图就是类似于数据结构中的无环有向图,Pytorch中的计算图就是为了记录…...
三十七、实战演练之接口自动化平台的文件上传
上传文件功能 上传文件功能主要针对需要测试上传文件的接口。原理是,把要测试上传的文件先上传到测试平台,然后把路径写入 用例中,后台真正测试时再将其进行上传。 一、上传文件模型 在testplans/models.py 模块中编写如下模型:…...
菜鸟刷题Day1
菜鸟刷题Day1 一.自守数:自守数_牛客题霸_牛客网 (nowcoder.com) 描述 自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 625,76^2 5776,9376^2 87909376。请求出n(包括n)以内的自守数的个数 解题思路&#x…...
cjson文件格式介绍
cjson是一种轻量级的JSON解析库,它支持将JSON格式的数据转换为C语言中的数据结构,同时也支持将C语言中的数据结构转换为JSON格式的数据。cjson的文件格式是指在使用cjson库时,将JSON格式的数据存储在文件中,然后通过cjson库读取文…...
【Nginx二】——Nginx常用命令 配置文件
Nginx常用命令 配置文件常用命令启动和重启 Nginx配置文件maineventshttp常用命令 安装完成nginx后,输入 nginx -?查询nginx命令行参数 nginx version: nginx/1.22.1 Usage: nginx [-?hvVtTq] [-s signal] [-p prefix][-e filename] [-c filename] [-…...
3月最新!AIGC公司生态地图;开发者实用ChatGPT工具清单;上手必会的SD绘图教程;字幕组全自动化流程大公开 | ShowMeAI日报
👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 『光年之外诚邀产品经理加入』古典产品经理的复兴! 光年之外创始人王慧文在社交平台发帖,公布联合创始人团队基…...
python - 递归函数
递归函数 什么是递归 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数 递归函数必须有一个明确的结束条件每进入更深一层的递归时,问题规模相对于上一次递归都应减少相邻两次重复之间有紧密的联系&…...
ring_log环形日志-6M缓冲区_proc接口
文章目录log_tools.clog.cspin_lockseq_putsseq_readseq_writesingle_openmakefiletest.sh测试:运行./test.sh读取日志插入日志echo cat测试参考:log_tools.c #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #includ…...
Linux内核进程管理几种CPU调度策略
CPU调度我们知道,程序需要获得CPU的资源才能被调度和执行,那么当一个进程由于某种原因放弃CPU然后进入阻塞状态,下一个获得CPU资源去被调度执行的进程会是谁呢?下图中,进程1因为阻塞放弃CPU资源,此时&#…...
SpringBoot整合Flink(施耐德PLC物联网信息采集)
SpringBoot整合Flink(施耐德PLC物联网信息采集)Linux环境安装kafka前情:施耐德PLC设备(TM200C16R)设置好信息采集程序,连接局域网,SpringBoot订阅MQTT主题,消息转至kafka,…...
DFS(深度优先搜索)和BFS(宽度优先搜索)
目录 DFS(深度优先搜索) 全排列的DFS解法 利用DFS递归构建二进制串和递归树的结构剖析 DFS--剪枝 DFS例题--整数划分 BFS(宽度优先搜索) 全排列的BFS解法 DFS(深度优先搜索) 深度优先搜索(Depth First Search&…...
Redis缓存穿透、击穿、雪崩问题及解决方法
系列文章目录 Spring Cache的使用–快速上手篇 分页查询–Java项目实战篇 全局异常处理–Java实战项目篇 完善登录功能–过滤器的使用 上述只是部分文章,对该系列文章感兴趣的可以查看我的主页哦 文章目录系列文章目录前言一、缓存穿透1.1 问题引入1.2 解决方法1.…...
HAL库 STM32 串口通信
一、实验条件将STM32的PA9复用为串口1的TX,PA10复用为串口1的RX。STM32芯片的输出TX和接收RX与CH340的接收RX和发送TX相连(收发交叉且PCB上默认没有相连,所以需要用P3跳线帽进行手动连接),CH340的另一端通过USB口引出与…...
2023-第十四届蓝桥杯冲刺计划!
💬前言 💡本文以目录形式列举大纲,可根据题目点击跳转 🌈冲刺阶段目的:把握高频重点,结合基础算法和常考题型总结,用真题进行模拟练习 根据自己的能力熟练目前已掌握的算法,不会的还可以暴力 ⏳最后三个星期大家一起冲…...
内网渗透基础知识
一、内网概述 内网也指局域网,是指在某一区域内又多台计算机互联成的计算机组。一般是方圆几千米内,局域网可以实现文件管理,应用软件共享,打印机共享,工作组内的历程安排,电子邮件和传真通信服务等功能。…...
鸟哥的Linux私房菜 正则表示法与文件格式化处理
第十一章、正则表示法与文件格式化处理 https://linux.vbird.org/linux_basic/centos7/0330regularex.php 简体版 http://cn.linux.vbird.org/linux_basic/0330regularex.php 11.2.2 grep的一些高级选项 例题一、搜索特定字符串 例题二、利用中括号 [] 来搜寻集合字符 例题四…...
1630.等差子数组
1630. 等差子数组 难度中等 如果一个数列由至少两个元素组成,且每两个连续元素之间的差值都相同,那么这个序列就是 等差数列 。更正式地,数列 s 是等差数列,只需要满足:对于每个有效的 i , s[i1] - s[i] …...
CSS 属性计算过程
CSS 属性计算过程 你是否了解 CSS 的属性计算过程呢? 有的同学可能会讲,CSS属性我倒是知道,例如: p{color : red; }上面的 CSS 代码中,p 是元素选择器,color 就是其中的一个 CSS 属性。 但是要说 CSS 属…...
ThinkPHP02:路由
ThinkPHP02:路由一、路由定义二、变量规则三、路由地址四、路由参数五、路由分组六、MISS七、资源路由八、注解路由九、URL生成一、路由定义 路由默认开启,在 config/app.php 中可以关闭路由。 路由配置在 config/route.php 中,路由定义在 r…...
OpenClaw自动化测试:百川2-13B驱动的前端元素定位与交互验证
OpenClaw自动化测试:百川2-13B驱动的前端元素定位与交互验证 1. 从手工测试到智能测试的进化之路 作为一名长期奋战在前端测试一线的开发者,我经历过从纯手工点击到Selenium脚本,再到Playwright框架的技术迭代。每次升级都带来效率提升&…...
车辆信号震动信号的滤波、幅值与能量分析——基于测试台采集文件ssjlbpp.m等的研究
车辆信号的震动信号的滤波、幅值以及能量分析,信号是利用测试台采集回来的 文件列表: ssjlbpp.m cxssjlbpp.m ssj.m fuzhissj.m翻了翻硬盘里压箱底的车辆测试台数据,哦对,还有那堆当时随手起的.mat之外的.m文件:ssjlbp…...
数字图书馆下载工具:高效获取策略与跨平台使用方案
数字图书馆下载工具:高效获取策略与跨平台使用方案 【免费下载链接】internet_archive_downloader A chrome/firefox extension that download books from Internet Archive(archive.org) and HathiTrust Digital Library (hathitrust.org) 项目地址: https://git…...
Zotero Style插件:如何通过3个核心功能让文献管理效率提升200%?
Zotero Style插件:如何通过3个核心功能让文献管理效率提升200%? 【免费下载链接】zotero-style zotero-style - 一个 Zotero 插件,提供了一系列功能来增强 Zotero 的用户体验,如阅读进度可视化和标签管理,适合研究人员…...
这份榜单够用!高效论文写作全流程AI论文软件推荐(2026 最新)
2026年AI论文软件持续升级,论文写作全流程可拆解为文献调研→选题/开题→大纲/初稿→文献综述→降重/去AI味→润色/格式→查重/投稿七大环节,以下工具按环节精准匹配,兼顾中文适配、降重能力、去AI痕迹、学术合规四大核心需求,覆盖…...
突破2048游戏瓶颈:AI助手的全方位策略支持
突破2048游戏瓶颈:AI助手的全方位策略支持 【免费下载链接】2048-ai AI for the 2048 game 项目地址: https://gitcode.com/gh_mirrors/20/2048-ai 为何数字方块总是难以合并到2048? 你是否曾在2048游戏中遭遇这样的困境:屏幕上的数字…...
泛微OA Ecology 安全补丁管理账号配置与实战
1. 泛微OA Ecology安全补丁管理账号配置详解 第一次接触泛微OA Ecology系统的安全补丁管理功能时,我完全没意识到这个看似简单的配置背后藏着这么多门道。直到有次系统被恶意攻击,才发现默认的管理账号存在安全隐患。今天就带大家彻底搞懂这个关键配置&a…...
C++ 智能指针的底层实现逻辑
C智能指针的底层实现逻辑揭秘 在C开发中,内存管理一直是程序员需要谨慎处理的难题。传统裸指针容易导致内存泄漏、悬垂指针等问题,而智能指针通过自动化资源管理,显著提升了代码的安全性和可维护性。那么,智能指针是如何在底层实…...
Rufus安装ubantu系统全过程
清水补充:这次安装的是ubantu22.04版本,准备来给两个电脑装,内存分配是分别是,微星老电脑是一个盘200G,/boot 使用1G,/swap 17G , 、/ 根目录90G,/home 文件目录96G ,实验…...
