如何在Python 3的Jupyter Notebook中筛选特定行数及指定时间范围数据

Pandas DataFrame 2008-2016年时间范围筛选方法
首先确保你DataFrame中的时间列已转换为datetime格式,执行以下代码完成转换:df['时间列名'] = pd.to_datetime(df['时间列名'])
将代码中的时间列名替换为你实际存储时间数据的列名即可。
以下是3种常用的筛选方案,按需选择:
- 方案1:按年份属性直接筛选(适合仅需按完整年度筛选的场景)
filtered_df = df[(df['时间列名'].dt.year >= 2008) & (df['时间列名'].dt.year <= 2016)] - 方案2:使用between方法筛选(可自定义精确到时分秒的起止时间)
start = pd.to_datetime('2008-01-01') end = pd.to_datetime('2016-12-31 23:59:59') filtered_df = df[df['时间列名'].between(start, end)] - 方案3:日期切片筛选(适合时间列已设为索引的场景)
# 先将时间列设为索引 df = df.set_index('时间列名') # 直接按年份切片即可 filtered_df = df.loc['2008':'2016']
验证小技巧:筛选完成后可执行
print(filtered_df['时间列名'].dt.year.min(), filtered_df['时间列名'].dt.year.max())查看输出的最小和最大年份是否为2008和2016,确认筛选结果正确。
内容的提问来源于stack exchange,提问作者Lee Kuo
相关产品推荐
相关产品推荐

