数据统计与数据分组18-25题(30 天 Pandas 挑战)

news2025/1/4 20:17:10

数据统计与数据分组

  • 1. 知识点
    • 1.18 分箱与统计个数
    • 1.19 分组与求和统计
    • 1.20 分组获取最小值
    • 1.21 分组获取值个数
    • 1.22 分组与条件查询
    • 1.23 分组与条件查询及获取最大值
    • 1.24 分组及自定义函数
    • 1.25 分组+lambda函数统计
  • 2. 题目
    • 2.18 按分类统计薪水(数据统计)
    • 2.19 查找每个员工花费的总时间(数据分组)
    • 2.20 游戏玩法分析 I(数据分组)
    • 2.21 每位教师所教授的科目种类的数量(数据分组)
    • 2.22 超过5名学生的课(数据分组)
    • 2.23 订单最多的客户(数据分组)
    • 2.24 按日期分组销售产品(数据分组)
    • 2.25 每天的领导和合伙人(数据分组)

1. 知识点

1.18 分箱与统计个数

  • 分箱操作
    # float('inf')正无穷
    bins=[0,20000,50001,float('inf')]
    labels=['Low Salary', 'Average Salary', 'High Salary']
    accounts['category']=pd.cut(accounts['income'],bins=bins,labels=labels,right=False)
    
  • 数值统计
    accounts_new=accounts['category'].value_counts().reset_index()
    

1.19 分组与求和统计

  • 分组统计
    employees=employees.groupby(['event_day','emp_id']).agg({'total_time':'sum'}).reset_index()
    
  • 多种数值统计
    employees=employees.groupby(['event_day','emp_id']).agg(
    total_add=('total_time','sum'),
    total_mean=('total_time','mean')
    ).reset_index()
    

1.20 分组获取最小值

  • 分组获取最小值
    activity=activity.groupby('player_id').agg(first_login=('event_date','min')).reset_index()
    

1.21 分组获取值个数

  • 分组获取最小值
    teacher=teacher.groupby('teacher_id').agg(cnt=('subject_id','count')).reset_index()
    

1.22 分组与条件查询

courses=courses.groupby('class').agg(counts=('student','count')).reset_index() # 分组
courses=courses.query('`counts`>5')[['class']] # 条件查询

1.23 分组与条件查询及获取最大值

  • 分组统计
    orders=orders.groupby('customer_number').agg(counts=('order_number','count')).reset_index()
    
  • 最大值
    max_orders=orders['counts'].max()
    
  • 条件查询
    results=orders.query(f'`counts`=={max_orders}')[['customer_number']]
    

1.24 分组及自定义函数

def get_join(x):
        x_list=sorted(list(set(x)))
        return ','.join(x_list)
    def get_count(x):
        x_list=set(x)
        return len(x_list)
    activities=activities.groupby(['sell_date']).agg(num_sold=('product',get_count),products=('product',get_join)).reset_index()

1.25 分组+lambda函数统计

daily_sales=daily_sales.groupby(['date_id','make_name']).agg(
        unique_leads=('lead_id',lambda x:len(set(x))),
        unique_partners=('partner_id',lambda x:len(set(x)))
        ).reset_index()

2. 题目

2.18 按分类统计薪水(数据统计)

在这里插入图片描述
在这里插入图片描述

import pandas as pd

def count_salary_categories(accounts: pd.DataFrame) -> pd.DataFrame:
    # float('inf')
    bins=[0,20000,50001,float('inf')]
    labels=['Low Salary', 'Average Salary', 'High Salary']
    accounts['category']=pd.cut(accounts['income'],bins=bins,labels=labels,right=False)
    accounts_new=accounts['category'].value_counts().reset_index()
    accounts_new=accounts_new.rename(columns={'count':'accounts_count'})
    accounts_new=accounts_new.sort_values('category',ascending=False)
    return accounts_new

2.19 查找每个员工花费的总时间(数据分组)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

import pandas as pd

def total_time(employees: pd.DataFrame) -> pd.DataFrame:
	# pandas流
    employees=employees.assign(total_time = employees.out_time-employees.in_time).groupby(['event_day','emp_id']).agg({'total_time':'sum'}).reset_index().rename(columns = {'event_day':'day'})
    # employees['total_time']=employees['out_time']-employees['in_time']
    # employees=employees.groupby(['event_day','emp_id'])['total_time'].sum().reset_index()
    # employees=employees.rename(columns={'event_day':'day'})
    # employees.sort_values('emp_id',inplace=True)
    return employees

2.20 游戏玩法分析 I(数据分组)

在这里插入图片描述
在这里插入图片描述

import pandas as pd

def game_analysis(activity: pd.DataFrame) -> pd.DataFrame:
    activity=activity.groupby('player_id').agg(first_login=('event_date','min')).reset_index()
    return activity

2.21 每位教师所教授的科目种类的数量(数据分组)

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

import pandas as pd

def count_unique_subjects(teacher: pd.DataFrame) -> pd.DataFrame:
    teacher.drop_duplicates(['teacher_id','subject_id'],inplace=True)
    teacher=teacher.groupby('teacher_id').agg(cnt=('subject_id','count')).reset_index()
    return teacher

2.22 超过5名学生的课(数据分组)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pd

def find_classes(courses: pd.DataFrame) -> pd.DataFrame:
    courses=courses.groupby('class').agg(counts=('student','count')).reset_index()
    return courses.query('`counts`>5')[['class']]

2.23 订单最多的客户(数据分组)

在这里插入图片描述
在这里插入图片描述

import pandas as pd

def largest_orders(orders: pd.DataFrame) -> pd.DataFrame:
    orders=orders.groupby('customer_number').agg(counts=('order_number','count')).reset_index()
    max_orders=orders['counts'].max()
    results=orders.query(f'`counts`=={max_orders}')[['customer_number']]
    return results

2.24 按日期分组销售产品(数据分组)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

import pandas as pd

def categorize_products(activities: pd.DataFrame) -> pd.DataFrame:
    activities=activities.groupby(['sell_date']).agg(
        num_sold=('product',lambda x:len(set(x))),
        products=('product',lambda x:','.join(sorted(list(set(x)))))
        ).reset_index()
    return activities
    

2.25 每天的领导和合伙人(数据分组)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import pandas as pd

def daily_leads_and_partners(daily_sales: pd.DataFrame) -> pd.DataFrame:
    daily_sales=daily_sales.groupby(['date_id','make_name']).agg(
        unique_leads=('lead_id',lambda x:len(set(x))),
        unique_partners=('partner_id',lambda x:len(set(x)))
        ).reset_index()
    return daily_sales

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

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

相关文章

《python程序语言设计》2018版第5章第52题利用turtle绘制sin函数

这道题是送分题。因为循环方式已经写到很清楚,大家照抄就可以了。 但是如果说光照抄可是会有问题。比如我们来演示一下。 import turtleturtle.penup() turtle.goto(-175, 50 * math.sin((-175 / 100 * 2 * math.pi))) turtle.pendown() for x in range(-175, 176…

5款屏幕监控软件精选|电脑屏幕监控软件分享

屏幕监控软件在现代工作环境中扮演着越来越重要的角色,无论是为了提高员工的工作效率,还是为了保障企业数据的安全,它们都成为了不可或缺的工具。 下面,让我们以一种新颖且易于理解的方式,来介绍五款备受好评的屏幕监…

前端JS特效第21集:HTML5响应式多种切换效果轮播大图切换js特效代码

HTML5响应式多种切换效果轮播大图切换js特效代码&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t…

灵活视图变换器:为扩散模型设计的革新图像生成架构

在自然界中&#xff0c;图像的分辨率是无限的&#xff0c;而现有的图像生成模型在跨任意分辨率泛化方面存在困难。虽然扩散变换器&#xff08;DiT&#xff09;在特定分辨率范围内表现出色&#xff0c;但在处理不同分辨率的图像时却力不从心。为了克服这一限制&#xff0c;来自上…

MySQL篇三:数据类型

文章目录 前言1. 数值类型1.1 tinyint类型1.2 bit类型1.3 小数类型1.3.1 float1.3.2 decimal 2. 字符串类型2.1 char2.2 varchar2.3 char和varchar比较 3. 日期类型4. enum和set 前言 数据类型分类&#xff1a; 1. 数值类型 1.1 tinyint类型 在MySQL中&#xff0c;整型可以指…

MPS---MPQ86960芯片layout设计总结

MPQ86960 是一款内置功率 MOSFET 和栅极驱动的单片半桥。它可以在宽输入电压 (VIN) 范围内实现高达 50A 的连续输出电流 (IOUT)&#xff0c;通过集成MOSFET 和驱动可优化死区时间 (DT) 并降低寄生电感&#xff0c;从而实现高效率。 MPQ86960 兼容三态输出控制器&#xff0c;另…

[附源码]基于Flask的演唱会购票系统

摘要 随着互联网技术的普及和发展&#xff0c;传统购票方式因其效率低下、流程繁琐等问题已难以满足现代社会的需求。本文设计并实现了一个基于Flask框架的演唱会购票系统&#xff0c;该系统集成了用户管理、演唱会信息管理、票务管理以及数据统计与分析等功能模块&#xff0c…

如何让代码兼容 Python 2 和 Python 3?Future 库助你一臂之力

目录 01Future 是什么? 为什么选择 Future? 安装与配置 02Future 的基本用法 1、兼容 print 函数 2、兼容整数除法 3、兼容 Unicode 字符串 03Future 的高级功能 1. 处理字符串与字节 2. 统一异常处理…

nullptr和NULL

nullptr 既不是整型类型&#xff0c;也不是指针类型&#xff0c;nullptr 的类型是 std::nullptr_t&#xff08;空指针类型&#xff09;&#xff0c;能转换成任意的指针类型。 NULL是被定义为0的常量&#xff0c;当遇到函数重载时&#xff0c;就会出现问题。避免歧义 函数重载…

Django QuerySet对象,filter()方法

filter()方法 用于实现数据过滤功能&#xff0c;相当于sql语句中的where子句。 filter(字段名__exact10) 或 filter(字段名10)类似sql 中的 10 filter(字段名__gt10) 类似SQL中的 >10 filter(price__lt29.99) 类似sql中的 <29.99 filter(字段名__gte10, 字段名__lte20…

ELFK简介

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…

初识java—jdk17的一些新增特性

文章目录 前言一 &#xff1a; yield关键字二 &#xff1a;var关键字三 &#xff1a;密封类四 &#xff1a;空指针异常&#xff1a;五&#xff1a;接口中的私有方法&#xff1a;六&#xff1a;instanceof关键字 前言 这里介绍jdk17相对于jdk1.8的部分新增特性。 一 &#xff…

python集成Bartender实现二维码打印

本文摘录于&#xff1a;https://blog.csdn.net/mynameisJW/article/details/105500773只是做学习备份之用&#xff0c;绝无抄袭之意&#xff0c;有疑惑请联系本人&#xff01; 这里上传我优化了一下的代码:https://download.csdn.net/download/chengdong1314/89522026 我这里弄…

GuLi商城-商品服务-API-品牌管理-OSS整合测试

各语言SDK参考文档_对象存储(OSS)-阿里云帮助中心 安装SDK&#xff1a; <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version> </dependency> 测试上传文件流&…

【leetcode周赛记录——405】

405周赛记录 #1.leetcode100339_找出加密后的字符串2.leetcode100328_生成不含相邻零的二进制字符串3.leetcode100359_统计X和Y频数相等的子矩阵数量4.leetcode100350_最小代价构造字符串 刷了一段时间算法了&#xff0c;打打周赛看看什么水平了 #1.leetcode100339_找出加密后的…

【微服务网关——服务发现】

1.服务发现 1.1 介绍 服务发现是指用注册中心来记录服务信息&#xff0c;以便其他服务快速查找已注册服务服务发现分类: 客户端服务发现服务端服务发现 1.2 客户端服务发现 客户端服务发现&#xff08;Client-side Service Discovery&#xff09;是一种微服务架构中的模式…

RAID的实现

软RAID&#xff0c;在实际工作中使用较少&#xff0c;性能太次。 mdadm工具&#xff0c;主要在虚拟机上使用&#xff0c; 硬RAID 用一个单独的芯片&#xff0c;这个芯片的名字叫做RAID卡&#xff0c;数据在RAID中进行分散的时候&#xff0c;用的就是RAID卡。 模拟RAID-5工作…

Http Json参数到x-www-form-urlencoded参数的在线转换工具

Json参数到x-www-form-urlencoded参数的在线转换工具

vue学习笔记之组件传值

说起组件传值&#xff0c;首先要介绍再vue中什么是组件。 组件&#xff08;Component&#xff09;&#xff0c;是vue中很强大的一个功能&#xff0c;可以将一些可重用的代码进行重用。所有的vue组件同时也是vue实例&#xff0c;可以接受使用相同的选项对象和提供相同的生命周期…

cf 7.7

Problem - C - Codeforces 大致意思&#xff1a; 找前缀&#xff0c;排序后使得本位之前数字和等于该位 &#xff08;以下代码超时了&#xff09; #include<bits/stdc.h> typedef long long ll;#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0) const ll …