力扣之1369.获取最近第二次的活动
-
题目:
-


-
sql建表语句
-
Create table If Not Exists UserActivity (username varchar(30), activity varchar(30), startDate date, endDate date); Truncate table UserActivity; insert into UserActivity (username, activity, startDate, endDate) values ('Alice', 'Travel', '2020-02-12', '2020-02-20'); insert into UserActivity (username, activity, startDate, endDate) values ('Alice', 'Dancing', '2020-02-21', '2020-02-23'); insert into UserActivity (username, activity, startDate, endDate) values ('Alice', 'Travel', '2020-02-24', '2020-02-28'); insert into UserActivity (username, activity, startDate, endDate) values ('Bob', 'Travel', '2020-02-11', '2020-02-18'); -
分析:首先,我们先按照姓名分组,然后按照开始时间排序,找出每个人的活动次序,然后我们再算出每个人的最大次数,然后筛选出最大值不为1,而且排序问最大值-1的信息,或者最大值和排序都为1的信息,下面是图解分析:
-

-
sql实现:
with t1 as (select username,activity,startDate,endDate,row_number() over (partition by username order by startDate) rn from UserActivity -- 首先按照姓名分组,然后按照开始时间排序,找出每个人的活动次序 ),t2 as (select username,activity,startDate,endDate,rn,max(rn) over(partition by username) max_rn from t1 -- 然后我们再算出每个人的最大次数) select username,activity,startDate,endDate from t2 where (rn=max_rn-1 and max_rn!=1) or (rn=1 and max_rn=1) --筛选出最大值不为1,而且排序问最大值-1的信息,或者最大值和排序都为1的信息 -
pandas例子:
-
data = [['Alice', 'Travel', '2020-02-12', '2020-02-20'], ['Alice', 'Dancing', '2020-02-21', '2020-02-23'], ['Alice', 'Travel', '2020-02-24', '2020-02-28'], ['Bob', 'Travel', '2020-02-11', '2020-02-18']] user_activity = pd.DataFrame(data, columns=['username', 'activity', 'startDate', 'endDate']).astype({'username':'object', 'activity':'object', 'startDate':'datetime64[ns]', 'endDate':'datetime64[ns]'}) -
Pandas 分析与sql分析一样:
-
pandas实现:
import pandas as pddef second_most_recent(user_activity: pd.DataFrame) -> pd.DataFrame:user_activity['rn']=user_activity.groupby('username')['startDate'].rank() --按照姓名分组,然后按照开始时间排序user_activity['max_rn']=user_activity.groupby('username')['rn'].transform('max') -- 算出每个人的最大次数user_activity=(user_activity[((user_activity['rn']==1) & (user_activity['max_rn']==1)) |((user_activity['rn']==user_activity['max_rn']-1) & (user_activity['max_rn']!=1))].reset_index(drop=True)) -- 筛选出最大值不为1,而且排序问最大值-1的信息,或者最大值和排序都为1的信息user_activity=user_activity[['username','activity','startDate','endDate']] -- 取出所需要的列return user_activity
相关文章:
力扣之1369.获取最近第二次的活动
题目: sql建表语句 Create table If Not Exists UserActivity (username varchar(30), activity varchar(30), startDate date, endDate date); Truncate table UserActivity; insert into UserActivity (username, activity, startDate, endDate) values (Alic…...
Python 和 Jupyter Kernel 版本不一致
使用jupyter notebook时明明已经安装了包,但是导入时提示: ModuleNotFoundError: No module named ptitprince 1、检查安装环境 !pip show ptitprince Name: ptitprince Version: 0.2.7 Summary: A Python implementation of Rainclouds, originally…...
Android常用布局
目录 布局文件中常见的属性 1. 基本布局属性 1)android:layout_width 2)android:layout_height 3)android:layout_margin 4)android:padding 2. 线性布局 (LinearLayout) 属性 1)android:orientation 2)and…...
初级网络工程师之从入门到入狱(五)
本文是我在学习过程中记录学习的点点滴滴,目的是为了学完之后巩固一下顺便也和大家分享一下,日后忘记了也可以方便快速的复习。 网络工程师从入门到入狱 前言一、链路聚合1.1、手动进行链路聚合1.1.1、 拓扑图:1.1.2、 LSW11.1.3、 LSW2 1.2、…...
JavaScript轮播图实现
这个代码创建了一个简单的轮播图,可以通过点击左右箭头或自动播放来切换图片。 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>js轮播图练习</title><style>.box {width: 60vw;height: 500px;m…...
【LLM开源项目】LLMs-开发框架-Langchain-Tutorials-Basics-v2.0
【1】使用LCEL构建简单的LLM应用程序(Build a Simple LLM Application with LCEL) https://python.langchain.com/docs/tutorials/llm_chain/ 如何使用LangChain构建简单的LLM应用程序。功能:将把文本从英语翻译成另一种语言。 实现:LLM调用加上一些提…...
Python 爬取天气预报并进行可视化分析
今天,我们就来学习如何使用 Python 爬取天气预报数据,并用数据可视化的方式将未来几天的天气信息一目了然地展示出来。 在本文中,我们将分三步完成这一任务: 使用 Python 爬取天气数据数据解析与处理用可视化展示天气趋势 让我…...
最左侧冗余覆盖子串
题目描述 给定两个字符串 s1 和 s2 和正整数 k,其中 s1 长度为 n1,s2 长度为 n2。 在 s2 中选一个子串,若满足下面条件,则称 s2 以长度 k 冗余覆盖 s1 该子串长度为 n1 k 该子串中包含 s1 中全部字母 该子串每个字母出现次数…...
性能测试-JMeter(2)
JMeter JMeter断言响应断言JSON断言断言持续时间 JMeter关联正则表达式提取器正则表达式正则表达式提取器 XPath提取器JSON提取器 JMeter属性JMeter录制脚本 JMeter断言 断言:让程序自动判断预期结果和实际结果是否一致 提示: -Jmeter在请求的返回层面有…...
芯课堂 | Synwit_UI_Creator(μgui)平台之图像处理篇
今天小编给大家介绍的是UI_Creator(μgui)平台下关于图像处理的选项。 UI_Creator(μgui)平台图片类控件有图像控件和分级图像控件,均包含以下选项: 1、消除水波纹: 由于16位真彩色(…...
QT C++ 软键盘/悬浮键盘/触摸屏键盘的制作
目录 1、前言 2、界面设计 3、英文、数字的输入 4、符号的输入 5、中文的输入 6、中文拼音库的选择 7、其他 8、结语 1、前言 使用QT C在带显示器的Linux系统 开发板上(树莓派等)编写操作UI界面时,很多时候都需要一个软键盘来输入文字…...
element-ui点击文字查看图片预览功能
今天做一个点击文字查看图片的功能,大体页面长这样子,点击查看显示对应的图片 引入el-image-viewer,点击的文字时候设置图片预览组件显示并传入图片的地址 关键代码 <el-link v-if"scope.row.fileList.length > 0" type&…...
SpringBoot集成Redis使用Cache缓存
使用SpringBoot集成Redis使用Cache缓存只要配置相应的配置类,然后使用Cache注解就能实现 RedisConfig配置 新建RedisConfig配置类 package com.bdqn.redis.config;import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annota…...
【瑞萨RA8D1 CPK开发板】lcd显示
1.8寸lcd使用gpio模拟spi驱动 由于板子引出的接口限制,故使用gpio模拟spi驱动中景园的1.8寸lcd 1.77寸液晶屏 1.8寸TFT LCD SPI TFT彩屏st7735驱动128x160高清屏-淘宝网 (taobao.com) 使用RASC 的gpio配置 根据厂家提供的驱动文件移植 #define LCD_SCLK_Clr() g…...
算法收敛的一些证明方法与案例
证明一个算法收敛通常涉及多个角度,以下是一些常用的方法和示例: 一、方法 1. 数学归纳法 通过数学归纳法证明算法在每一步的输出结果都在收敛范围内。 示例:考虑一个递归算法,假设我们要证明它在每一步中输出的值逐渐接近目标…...
基于vue框架的蛋糕店网上商城740g7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
系统程序文件列表 项目功能:用户,店长,商品分类,商品信息,订单投诉,反馈信息 开题报告内容 基于Vue框架的蛋糕店网上商城开题报告 一、项目背景与意义 随着互联网技术的快速发展和普及,电子商务已成为现代商业的重要组成部分。蛋糕作为一种受欢迎的美…...
你真的了解Canvas吗--解密六【ZRender篇】
目录 📚入口 Circle - 图形 Group - 组 事件捕获 - 流程 step - 1 step - 2 总结 这篇文章我们讲讲Circle圆形,Group组的使用以及大家最熟悉又陌生的事件捕获和冒泡在ZRender中的实现,篇幅较长,且听我慢慢分析。 &#x…...
孤独相伴 - 结婚十七年
07年的今天,我和老公请假,去了新加坡的大使馆领证。 17年后的今天,此刻凌晨16分, 这是17年来我第一次这么早写结婚纪念,只是凑巧。 今天的心情莫名其妙。 此刻,两个词出现在我的脑海:孤独 &am…...
json-server,跨域
启动json-serer json-server --watch db.json 注意: db.json为json文件的名称,你自己的文件名叫什么,就启动对应的文件就可以了 启动json-server的时候,必须在你db.json所在的文件夹下进行启动 这样服务器就可以启动成功了&…...
【Conda】修复 Anaconda 安装并保留虚拟环境的详细指南
目录 流程图示1. 下载 Anaconda 安装程序2. 重命名现有的 Anaconda 安装目录Windows 操作系统Linux 操作系统 3. 运行新的 Anaconda 安装程序Windows 操作系统Linux 操作系统 4. 同步原环境使用 robocopy 命令(Windows)使用 rsync 命令(Linux…...
OntoFlow - AI本体智能应用开发平台 正式版(一个可以覆盖Palantir平台及底层能力的平台) 一种颠覆性的软件开发新模式
万物互联、数据感知、数字孪生、智能决策:本体智能OntoFlow’产品定位:AI本体智能应用开发平台 | 非本体建模设计平台可落地 可运行 可发布 | 非知识图谱 非设计软件 非Demo1人业务1人开发 模式 | 非传统软件开发模式半人工半AI开发 -> 未来全AI…...
使用Taotoken聚合端点一个月,我的API调用延迟与稳定性观察记录
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken聚合端点一个月,我的API调用延迟与稳定性观察记录 1. 项目背景与接入动机 我最近的一个个人项目需要持续…...
时间序列预测中的注意力剪枝技术:SPAT方法解析
1. 项目概述:当时间序列预测遇上注意力剪枝在多元时间序列预测领域,Transformer架构凭借其强大的注意力机制已成为主流解决方案。这种机制通过动态计算序列元素间的关联权重,能够有效捕捉电力负荷、交通流量等场景中的复杂时序模式。然而在实…...
别再乱用pt和px了!LaTeX排版中em、mm、pt单位选哪个?看完这篇实战避坑指南
LaTeX排版单位选择实战指南:从em到pt的精准避坑策略 当你熬夜完成的论文在导师的打印机上变成一团乱码,当精心设计的报告在不同设备上显示得七零八落——这些悲剧往往源于一个被忽视的细节:长度单位的选择。LaTeX作为科研排版的事实标准&…...
EEG情感分析入门:如何用DEAP数据集里的脑电波区分‘开心’和‘平静’?
EEG情感分析实战:从DEAP数据集解码快乐与平静的脑电密码 当你听到最喜欢的歌曲时,大脑会产生怎样的电信号变化?神经科学研究表明,不同的情绪状态会在大脑活动中留下独特的"指纹"。本文将带你探索如何利用DEAP数据集中的…...
向量:一篇文章带你看清数学中最有“方向感“的概念
一、先讲一个让我"开窍"的故事 高中时第一次接触向量,老师在黑板上画了一个箭头,说:“这就是向量。” 我看着那个箭头,心想:这有什么稀奇的?不就是带方向的线段吗? 然后老师开始讲向量…...
告别ActiveX!用WebSocket+JavaScript在Chrome/Firefox里直接调用扫描仪(附完整代码)
现代浏览器无插件扫描方案:WebSocket与JavaScript的完美结合 曾几何时,企业办公系统中扫描文档需要依赖特定的浏览器和插件。如今,随着技术演进,我们终于可以摆脱ActiveX和NPAPI的束缚,在Chrome、Firefox等现代浏览器中…...
ArduPilot硬件抽象层(HAL)深度解析:如何让你的飞控代码轻松跑在不同芯片上?
ArduPilot硬件抽象层(HAL)深度解析:跨平台飞控开发实战指南 当开发者尝试将ArduPilot移植到一块全新的飞控板时,最常遇到的挑战莫过于如何让同一套控制算法在不同硬件架构上无缝运行。这正是硬件抽象层(HAL)设计的精妙之处——它如同一位技艺高超的翻译官…...
LinkSwift:九大网盘直链下载的终极解决方案,快速获取真实下载地址
LinkSwift:九大网盘直链下载的终极解决方案,快速获取真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘…...
Linux玩转硬件调试:用CH347芯片一站式搞定JTAG、SWD、SPI Flash和EEPROM(含中断检测实战)
Linux玩转硬件调试:用CH347芯片一站式搞定JTAG、SWD、SPI Flash和EEPROM(含中断检测实战) 在嵌入式开发和硬件逆向工程领域,调试工具的选择往往决定了工作效率的上限。传统方案需要购置价格高昂的专用调试器,而CH347芯…...
