如何从数据集中提取特定月份中、印新增病例至新DataFrame?
解决方法
假设你用pandas库处理数据,以下是具体实现步骤:
1. 预处理日期列
先确保数据集的日期列是datetime类型,若不是则先转换:
import pandas as pd # 读取你的数据集(替换为实际路径) df = pd.read_csv("your_dataset.csv") # 转换日期列(假设日期列名为'date',格式根据数据实际调整,比如'%Y-%m-%d') df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
2. 定义筛选条件
指定目标国家和需要提取的月份:
target_countries = ['中国', '印度'] target_months = [ (2020, 3), (2020, 9), (2021, 3), (2021, 9), (2022, 3), (2022, 9) ]
3. 筛选并聚合数据
筛选符合条件的行,再按国家、年份、月份分组求和:
# 筛选目标国家 filtered_data = df[df['country'].isin(target_countries)] # 筛选目标月份 filtered_data = filtered_data[filtered_data['date'].apply(lambda x: (x.year, x.month) in target_months)] # 聚合新增病例总数(假设新增病例列名为'new_cases') result_df = filtered_data.groupby(['country', filtered_data['date'].dt.year, filtered_data['date'].dt.month])['new_cases'].sum().reset_index() # 修改列名更直观 result_df.columns = ['国家', '年份', '月份', '新增病例总数']
4. 查看结果
result_df就是你需要的新DataFrame,直接打印查看:
print(result_df)
常见问题排查
- 你提到的
data.Frame报错是拼写错误,pandas中创建DataFrame的正确写法是pd.DataFrame() - 若日期转换失败,检查数据的日期格式是否与
format参数匹配(比如部分数据格式是MM/DD/YYYY,需改为'%m/%d/%Y') - 若列名不匹配,将代码中的
country、date、new_cases替换为你数据集中的实际列名
内容的提问来源于stack exchange,提问作者uzair pawaskar
相关产品推荐
相关产品推荐

