如何用Pandas按时间戳索引提取CSV中每日00:01:00的行
提取DatetimeIndex中每日00:01:00对应的行
你没法用file['time']访问是因为'time'是索引的名称,不是DataFrame的列,要操作索引得用file.index。
下面是几种提取每日00:01:00对应行的实用方法:
方法1:直接匹配索引的时间部分
利用DatetimeIndex的.time属性,直接筛选时间等于00:01:00的行:
import pandas as pd # 筛选目标行 result = file[file.index.time == pd.to_datetime("00:01:00").time()]
方法2:通过时分条件筛选
拆分小时和分钟的条件,组合布尔索引实现筛选:
# 筛选小时为0、分钟为1的行 result = file[(file.index.hour == 0) & (file.index.minute == 1)]
方法3:按日期分组筛选(适配数据缺失场景)
如果数据存在某一天没有00:01:00记录的情况,按日期分组后再筛选能确保只保留有目标时间的有效数据:
# 按日期分组,提取每组中时间为00:01:00的行 result = file.groupby(file.index.date).apply( lambda group: group[group.index.time == pd.to_datetime("00:01:00").time()] ).reset_index(drop=True)
内容的提问来源于stack exchange,提问作者Geo48
相关产品推荐
相关产品推荐

