如何对索引含date字段的pandas dataframe按小于指定日期的条件过滤
实现方法
你可以通过以下两种常用方式对双层索引中的date层级做条件过滤,两种方法都会保留原有双层索引结构:
- 使用
Index.get_level_values()获取二级索引值做判断
# 按索引名获取date层级做条件过滤 df = df[df.index.get_level_values('date') < utc_datetime] # 也可以按索引层级顺序获取,date是第二层所以level=1 # df = df[df.index.get_level_values(1) < utc_datetime]
该方法直接读取索引层的数值做判断,性能较高,适合数据量较大的场景。
2. 使用query()方法简化写法
df = df.query("date < @utc_datetime")
该方法语法更简洁,@符用于引用当前环境中的外部变量utc_datetime,可读性更好。
内容的提问来源于stack exchange,提问作者Scott
相关产品推荐
相关产品推荐

