You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选DataFrame中处于两个指定时间戳之间的行?

Pandas筛选时间戳范围内的DataFrame行

我有一个包含大量行列的大型DataFrame,需要筛选出时间戳处于指定范围内的所有行。原始DataFrame如下:

timestamp          data     size     price 
   1690000000000000000      1       100       55
   170000000000000000      5       20        100
   1680000000000000000      5       55         44
   1620000000000000000      4        4         33
   1650000000000000000      10       4         1 
   1640000000000000000      15       2         99

需要筛选出时间戳在1640000000000000000至1680000000000000000之间的行,期望结果如下:

timestamp          data     size     price 
   1680000000000000000      5       55         44
   1650000000000000000      10       4         1 
   1640000000000000000      15       2         99

解决方案

方法一:布尔索引

直接通过比较运算符构造筛选条件,快速定位符合范围的行:

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({
    'timestamp': [1690000000000000000, 170000000000000000, 1680000000000000000, 1620000000000000000, 1650000000000000000, 1640000000000000000],
    'data': [1, 5, 5, 4, 10, 15],
    'size': [100, 20, 55, 4, 4, 2],
    'price': [55, 100, 44, 33, 1, 99]
})

# 定义时间范围边界
start_ts = 1640000000000000000
end_ts = 1680000000000000000

# 筛选符合条件的行
filtered_df = df[(df['timestamp'] >= start_ts) & (df['timestamp'] <= end_ts)]
print(filtered_df)

方法二:使用between()方法

Pandas内置的between()方法可以更简洁地实现范围筛选,效果和布尔索引一致:

filtered_df = df[df['timestamp'].between(start_ts, end_ts)]
print(filtered_df)

两种方法都能高效处理大型DataFrame,快速得到目标结果。


内容的提问来源于stack exchange,提问作者ifrj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:27:24