使用Pandas处理COVID19疫情数据时如何筛选指定日期范围的记录?
实现步骤及代码
你需要先将数据中的日期列转换为pandas支持的日期格式,再按指定范围筛选即可,完整可运行代码如下:
import pandas as pd import numpy as np # 原有读取、筛选国家的代码 df = pd.read_csv('COVID19.csv') df_ex = pd.DataFrame(df, columns = ['location' ,'date', 'total_cases', 'new_cases', 'total_deaths', 'new_deaths']) df_ext = df_ex[df_ex.location.isin(['New Zealand', 'Cyprus'])] # 新增日期筛选逻辑 # 1. 将date列转换为datetime格式,避免字符串比对出错 df_ext['date'] = pd.to_datetime(df_ext['date']) # 2. 自定义你需要的日期范围,格式为年-月-日 start_date = '2020-01-01' end_date = '2020-12-31' # 3. 筛选指定日期范围内的记录 # 写法1:布尔索引,灵活适配大于/小于等自定义条件 df_filtered = df_ext[(df_ext['date'] >= start_date) & (df_ext['date'] <= end_date)] # 写法2:between方法,代码更简洁(默认包含首尾两个日期) # df_filtered = df_ext[df_ext['date'].between(start_date, end_date)]
注意事项
- 如果你的原始CSV中日期格式不是
年-月-日,可以在pd.to_datetime中添加format参数指定格式,比如日期为日/月/年格式时,写法为pd.to_datetime(df_ext['date'], format='%d/%m/%Y') - 筛选得到的
df_filtered就是符合国家、日期双重条件的最终数据
内容的提问来源于stack exchange,提问作者Persnickety
相关产品推荐
相关产品推荐

