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

数据操作10-15题(30 天 Pandas 挑战)

数据操作

  • 1. 相关知识点
    • 1.12 分组与连表
    • 1.13 排名
  • 2. 题目
    • 2.10 第N高的薪水
    • 2.11 第二高的薪水
    • 2.12 部门工资最高的员工
    • 2.13 分数排名
    • 2.14 删除重复的电子邮箱
    • 2.15 每个产品在不同商店的价格

1. 相关知识点

1.12 分组与连表

  • 分组
    max_salary=employee.groupby('departmentId')['salary'].max().reset_index()
    
  • 连表
    data=pd.merge(employee,department,left_on='departmentId',right_on='id')
    

1.13 排名

  • dense相同值的项将获得连续排名
  • ascending指定排名的顺序,默认值为 True,升序
    scores['rank']=scores['score'].rank(method = 'dense',ascending = False)
    

2. 题目

2.10 第N高的薪水

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

import pandas as pddef nth_highest_salary(employee: pd.DataFrame, N: int) -> pd.DataFrame:if len(employee)<N:return pd.DataFrame({'getNthHighestSalary(2)':[None]})employee.sort_values('salary',ascending=False,inplace=True)employee=employee.rename(columns={'salary':'getNthHighestSalary(2)'})return employee[['getNthHighestSalary(2)']].head(N).tail(1)

2.11 第二高的薪水

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

import pandas as pddef second_highest_salary(employee: pd.DataFrame) -> pd.DataFrame:if len(employee)<2:return pd.DataFrame({'SecondHighestSalary':[None]})employee.sort_values('salary',ascending=False,inplace=True)employee=employee.rename(columns={'salary':'SecondHighestSalary'})return employee[['SecondHighestSalary']].head(2).tail(1)

2.12 部门工资最高的员工

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

import pandas as pddef department_highest_salary(employee: pd.DataFrame, department: pd.DataFrame) -> pd.DataFrame:max_salary=employee.groupby('departmentId')['salary'].max().reset_index()max_list=max_salary['salary'].to_list()employee=employee.query(f'`salary` in {max_list}')data=pd.merge(employee,department,left_on='departmentId',right_on='id')data=data.rename(columns={'name_y':'Department','name_x':'Employee'})return data[['Department','Employee','salary']]

2.13 分数排名

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

import pandas as pddef order_scores(scores: pd.DataFrame) -> pd.DataFrame:scores['rank']=scores['score'].rank(method = 'dense',ascending = False)return scores.sort_values('rank')[['score','rank']]

2.14 删除重复的电子邮箱

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

import pandas as pddef delete_duplicate_emails(person: pd.DataFrame) -> None:person.sort_values('id',inplace=True)person.drop_duplicates(subset=['email'],keep='first',inplace=True)

2.15 每个产品在不同商店的价格

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

import pandas as pddef rearrange_products_table(products: pd.DataFrame) -> pd.DataFrame:data=pd.melt(products,id_vars='product_id',var_name='store',value_name='price')# axis=0代表行data=data.dropna(subset=['price'],how='any', axis=0,inplace = False)return data

相关文章:

  • Redis面试合集
  • JVM原理(二):JVM之HotSpot虚拟机中对象的创建寻位与定位整体流程
  • 如何取消闪迪Micro SD卡的写保护?这个技巧很有效!
  • 【C语言内存函数】
  • PHP景区旅游多商户版微信小程序系统源码
  • Kafka 管理TCP连接
  • 《妃梦千年》第二十四章:皇后的考验
  • Java+前后端分离架构+ MySQL8.0.36产科信息管理系统 产科电子病历系统源码
  • AIGI赋能未来:人工智能如何重塑电子电路学习体验
  • 探索金融数据API:现代投资的关键工具
  • 南方航空阿里v2滑块验证码逆向分析思路学习
  • JVM 内存中方法出入栈原理
  • 油猴Safari浏览器插件:Tampermonkey for Mac 下载
  • 修复harbor的/account/sign-in\?globalSearch=b不登录可以查询镜像的问题
  • vue3 滚动条滑动到元素位置时,元素加载
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 2017 年终总结 —— 在路上
  • 4. 路由到控制器 - Laravel从零开始教程
  • Date型的使用
  • Redis 中的布隆过滤器
  • 第2章 网络文档
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 在Mac OS X上安装 Ruby运行环境
  • 在weex里面使用chart图表
  • Java数据解析之JSON
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # C++之functional库用法整理
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • $.each()与$(selector).each()
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (Note)C++中的继承方式
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (三)docker:Dockerfile构建容器运行jar包
  • (生成器)yield与(迭代器)generator
  • (十三)Flask之特殊装饰器详解
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 常见的偏门问题
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET项目中存在多个web.config文件时的加载顺序
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • [20150904]exp slow.txt
  • [240527] 谷歌 CEO 承认 AI 编造虚假信息问题难解(此文使用 @gemini 命令二次创作)| ICQ 停止运作
  • [Android]How to use FFmpeg to decode Android f...
  • [BZOJ] 1001: [BeiJing2006]狼抓兔子
  • [BZOJ1053][HAOI2007]反素数ant
  • [element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案
  • [Excel] vlookup函数
  • [JavaWeb玩耍日记]Maven的安装与使用