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

Python Pandas读取Excel表格中数据并根据时间字段筛选数据

🤟致敬读者

  • 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉

📘博主相关

  • 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息

文章目录

  • Python Pandas读取Excel表格中数据并根据时间字段筛选数据
    • 1. 需求描述
    • 2. 读取excel表格
    • 3. 筛选最新时间
    • 4. 筛选具体月份数据
    • 5.输出结果
    • 6. 完整代码


📃文章前言

  • 🔷文章均为学习工作中整理的笔记。
  • 🔶如有错误请指正,共同学习进步。

Python Pandas读取Excel表格中数据并根据时间字段筛选数据

1. 需求描述

现在有一个excel表格,其中包含设备字段device_id、最后使用时间字段end_time以及其他字段若干
需要将表格中的每个设备对应的最新的使用时间筛选出来,并在结果中根据最新时间筛选出4月和5月
对应的设备号列表

2. 读取excel表格

import pandas as pd# 读取 Excel 文件
file_path = r"C:\Users\Downloads\file_record.xlsx"  # 替换为你的文件路径
df = pd.read_excel(file_path)
# 显示前几行数据
# print(df.head())
# print(df)

在这里插入图片描述

3. 筛选最新时间

先根据时间重置DataFrame对象

# Assuming 'df' is your DataFrame and 'end_time' is initially in string format
df['end_time'] = pd.to_datetime(df['end_time'])  # Convert to datetime if necessary

然后根据设备号分组,再取end_time中最新即最大时间值,并重置索引

# Group by 'device_id' and find the max (latest) 'end_time' for each group
latest_end_times = df.groupby('device_id')['end_time'].max().reset_index()

4. 筛选具体月份数据

在上面的最新时间中筛选出4月和5月的设备列表

# Filter the 'latest_end_times' DataFrame to only include devices with 'end_time' in April or May
filtered_devices = latest_end_times[(latest_end_times['end_time'].dt.month == 4) | (latest_end_times['end_time'].dt.month == 5)
]

5.输出结果

遍历结果中设备和时间信息

for index, row in filtered_devices.iterrows():device_id = row['device_id']latest_end_time = row['end_time']print(f"Device ID: {device_id}, Latest End Time: {latest_end_time}")# 'filtered_devices' now contains the device information for which the latest 'end_time' is in April or May

在这里插入图片描述

6. 完整代码

完整代码如下

import pandas as pd# 读取 Excel 文件
file_path = r"C:\Users\Downloads\file_record.xlsx"  # 替换为你的文件路径
df = pd.read_excel(file_path)# 显示前几行数据
# print(df.head())
# print(df)# Assuming 'df' is your DataFrame and 'end_time' is initially in string format
df['end_time'] = pd.to_datetime(df['end_time'])  # Convert to datetime if necessary
# print(df.head())# Group by 'device_id' and find the max (latest) 'end_time' for each group
latest_end_times = df.groupby('device_id')['end_time'].max().reset_index()
# print(df)# Filter the 'latest_end_times' DataFrame to only include devices with 'end_time' in April or May
filtered_devices = latest_end_times[(latest_end_times['end_time'].dt.month == 4) | (latest_end_times['end_time'].dt.month == 5)
]for index, row in filtered_devices.iterrows():device_id = row['device_id']latest_end_time = row['end_time']print(f"Device ID: {device_id}, Latest End Time: {latest_end_time}")# 'filtered_devices' now contains the device information for which the latest 'end_time' is in April or May

📜文末寄语

  • 🟠关注我,获取更多内容。
  • 🟡技术动态、实战教程、问题解决方案等内容持续更新中。
  • 🟢《全栈知识库》技术交流和分享社区,集结全栈各领域开发者,期待你的加入。
  • 🔵​加入开发者的《专属社群》,分享交流,技术之路不再孤独,一起变强。
  • 🟣点击下方名片获取更多内容🍭🍭🍭👇

http://www.dtcms.com/a/288363.html

相关文章:

  • 软件警告弹窗与兼容性问题
  • HD Video Converter Factory pro 高清视频转换器 v27.7.0 绿色中文便携版
  • centos7使用docker-compose部署项目
  • 《Linux 环境下 NTP 时间同步与 SSH 免密登录配置实战》
  • 树的基础知识总结
  • 移动硬盘无法读取怎么办?数据还可以抢救回来
  • STC增强型单片机寄存器 PWM EEPROM TMOD TCON
  • 数据结构的文件操作
  • scalelsd 笔记 线段识别 本地部署 模型架构
  • Spring7个事务传播行为和5个隔离级别
  • Java-Lambda表达式
  • 【Linux】Linux中重定向 及 dup2 详细讲解
  • Stream API
  • 2023 年 5 月青少年软编等考 C 语言八级真题解析
  • 本地安装部署Unstructured-api
  • ADC选型设计
  • SpringBoot项目打包加部署方案
  • Datawhale 7月学习
  • SCSAI工业智能体的核心特征
  • Xss-labs 1-8以及利用python自动sq8注入
  • linux cpu频率和AVS调压等级
  • 板子 5.29--7.19
  • 函数式编程和命令式编程
  • Python爬虫实战:研究psd-tools库相关技术
  • UI 程序退出卡顿问题分析:从真实案例深入理解退出清理路径负载问题
  • 【工具变量】地级市城市包容性绿色增长数据(2011-2023年)
  • vue3使用KeepAlive组件及一些注意事项
  • [spring6: Advice Advisor Advised]-快速理解
  • 基于深度学习的火灾智能检测系统设计与实现
  • 零基础学习性能测试第二章-linux服务器监控:网络iftop