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

基于日期条件拆分DataFrame并写入两文件的实现咨询(Python3.6/Pandas0.22)

Pandas 分年份导出数据到独立文件的实现思路

针对你用Python3.6 + Pandas0.22处理降雪平均值数据、分2016/2017年导出的需求,给你几个靠谱的实现思路:

核心思路:按年份筛选数据

首先得确保你的DataFrame里有能识别年份的字段(比如日期列,或者单独的year列),然后按年份拆分后分别导出。

方法1:直接按年份布尔索引筛选

如果有单独的year列:

import pandas as pd

# 假设你的DataFrame叫snow_df,包含year、month、location、avg_snow列
# 筛选2016年数据并导出
snow_2016 = snow_df[snow_df['year'] == 2016]
snow_2016.to_csv('2016_snow_avg.csv', index=False)

# 筛选2017年数据并导出
snow_2017 = snow_df[snow_df['year'] == 2017]
snow_2017.to_csv('2017_snow_avg.csv', index=False)

如果只有日期列(比如date列是datetime类型):

# 先提取年份到新列(Pandas0.22支持dt.year)
snow_df['year'] = snow_df['date'].dt.year

# 之后同上筛选导出即可

方法2:用groupby批量处理(适合扩展到更多年份)

如果以后可能有更多年份,用groupby循环更高效:

# 按year分组,遍历每个分组
for year, group in snow_df.groupby('year'):
    # 只处理2016和2017年
    if year in [2016, 2017]:
        group.to_csv(f'{year}_snow_avg.csv', index=False)

注意:Python3.6已经支持f-string,直接用它拼接文件名很方便

Pandas0.22相关文档指引

  • 布尔索引筛选:对应文档里的Boolean Indexing章节,重点看基于列值的筛选逻辑
  • dt属性提取日期部分:对应Datetime Properties章节,dt.year是提取年份的常用方法
  • groupby分组:对应GroupBy Object章节,了解遍历分组的方式
  • to_csv方法:重点看index参数(设为False可以避免导出多余的索引列)

代码验证小技巧

写完代码后可以先打印筛选后的DataFrame信息确认:

print("2016年数据行数:", len(snow_2016))
print("2017年数据行数:", len(snow_2017))
# 或者查看前几行
print(snow_2016.head())

确保数据没有漏选或多选,再执行导出操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:52:07