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

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

相关推荐

  1. python&Pandas五:数据分析统计

    2024-07-10 03:44:01       61 阅读
  2. 数据分析-Pandas如何统计数据概况

    2024-07-10 03:44:01       61 阅读
  3. 数据分析面试11~20

    2024-07-10 03:44:01       47 阅读
  4. leetcode30pandas挑战day1笔记

    2024-07-10 03:44:01       58 阅读
  5. 数据分析Pandas 分组聚合

    2024-07-10 03:44:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 03:44:01       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 03:44:01       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 03:44:01       90 阅读
  4. Python语言-面向对象

    2024-07-10 03:44:01       98 阅读

热门阅读

  1. 《C++20设计模式》中单例模式

    2024-07-10 03:44:01       25 阅读
  2. 数字孪生技术在智能家居中的应用

    2024-07-10 03:44:01       27 阅读
  3. 单例模式的多种实现方式及其在框架中的使用

    2024-07-10 03:44:01       28 阅读
  4. 一、Prometheus和Grafana搭建

    2024-07-10 03:44:01       27 阅读
  5. 指向如此神奇:揭示Js函数this的10个惊人事实!

    2024-07-10 03:44:01       27 阅读
  6. k8s 使用 helm 文件部署 8.12.2 es 分角色集群

    2024-07-10 03:44:01       22 阅读
  7. 数据编码的艺术:sklearn中的数据转换秘籍

    2024-07-10 03:44:01       26 阅读
  8. android pdf框架-11,查看图片

    2024-07-10 03:44:01       22 阅读
  9. 深入探索:scikit-learn中递归特征消除(RFE)的奥秘

    2024-07-10 03:44:01       31 阅读
  10. 需求分析分类和层级、分析步骤

    2024-07-10 03:44:01       25 阅读
  11. js list to tree

    2024-07-10 03:44:01       20 阅读
  12. 02更新用户在线状态

    2024-07-10 03:44:01       23 阅读
  13. CSS魔法:link与@import的秘密较量

    2024-07-10 03:44:01       23 阅读