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

力扣刷题(第四十五天)

灵感来源 

- 保持更新,努力学习

- python脚本学习

上升的温度

解题思路

  1. 数据预处理

    • 将 recordDate 转换为日期时间类型以便进行日期计算
    • 按日期排序确保数据按时间顺序排列
  2. 创建前一天的参考列

    • 使用 shift(1) 方法创建前一天的温度和日期列
    • 计算当前日期与前一天的日期差
  3. 筛选条件

    • 当前温度大于前一天温度
    • 日期差恰好为一天(排除非连续日期的干扰)
  4. 结果返回

    • 提取符合条件的 id 列作为最终结果
      import pandas as pddef rising_temperature(weather: pd.DataFrame) -> pd.DataFrame:# 将 recordDate 列转换为日期时间类型weather['recordDate'] = pd.to_datetime(weather['recordDate'])# 按日期排序,确保数据按时间顺序排列weather = weather.sort_values('recordDate')# 创建前一天的温度和日期列weather['prev_temp'] = weather['temperature'].shift(1)weather['prev_date'] = weather['recordDate'].shift(1)# 计算日期差,确保是连续的一天weather['date_diff'] = weather['recordDate'] - weather['prev_date']# 筛选出温度升高且日期差为一天的记录result = weather[(weather['Temperature'] > weather['prev_temp']) & (weather['date_diff'] == pd.Timedelta(days=1))]# 返回符合条件的 id 列return result[['id']]

逐行解释

import pandas as pddef rising_temperature(weather: pd.DataFrame) -> pd.DataFrame:# 确保列名存在且标准化(转为小写)weather.columns = weather.columns.str.lower()# 检查是否存在 temperature 列if 'temperature' not in weather.columns:raise ValueError("数据集中缺少 temperature 列")# 将 recordDate 列转换为日期时间类型weather['recorddate'] = pd.to_datetime(weather['recorddate'])# 按日期排序,确保数据按时间顺序排列weather = weather.sort_values('recorddate')# 创建前一天的温度和日期列weather['prev_temp'] = weather['temperature'].shift(1)weather['prev_date'] = weather['recorddate'].shift(1)# 计算日期差,确保是连续的一天weather['date_diff'] = weather['recorddate'] - weather['prev_date']# 筛选出温度升高且日期差为一天的记录result = weather[(weather['temperature'] > weather['prev_temp']) & (weather['date_diff'] == pd.Timedelta(days=1))]# 返回符合条件的 id 列return result[['id']].reset_index(drop=True)    

http://www.xdnf.cn/news/10564.html

相关文章:

  • navicate菜单栏不见了怎么办
  • cursor如何开启自动运行模式
  • PH热榜 | 2025-05-31
  • Docker常用命令详解与高效记忆指南
  • Android Studio历史版本下载地址汇总
  • 【软件测试】web自动化:Pycharm+Selenium+Firefox(一)
  • 【动画】unity中实现骨骼蒙皮动画
  • 使用FastAPI构建车牌检测识别服务
  • 「Python教案」字符串格式化操作
  • hooks组件-useState
  • 散列表(哈希表)
  • 函数调用的机器级实现(二):栈帧的访问与切换机制
  • 【笔记】为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境)
  • 用wireshark抓包分析学习USB协议
  • 浅写弱口令与命令爆破
  • Cursor 编辑器介绍:专为程序员打造的 AI 编程 IDE
  • Python项目结构
  • 录屏不再难,从功能到体验深度测评
  • MPTCP 聚合吞吐
  • LRU和LFU缓存策略
  • ESP32系列AT固件快速开发——Wi-Fi MQTT
  • 【笔记】Windows系统部署suna基于 MSYS2的Poetry 虚拟环境backedn后端包编译失败处理
  • 汽车安全体系:FuSa、SOTIF、Cybersecurity 从理论到实战
  • 绿盟 IPS 设备分析操作手册
  • Nuxt3部署
  • TS 星际通信指南:从 TCP 到 UDP 的宇宙漫游
  • (Python)列表的操作(增删改查、排序)
  • 2025年ESWA SCI1区TOP,改进成吉思汗鲨鱼算法MGKSO+肝癌疾病预测,深度解析+性能实测
  • 网络攻防技术四:网络侦察技术
  • 重温经典算法——快速排序