基于Pandas的Python数据处理自动化方案咨询
批量处理年度森林火灾数据的自动化方案
1. 统一管理年度DataFrame
首先把分散的各年份DataFrame存入字典,用年份作为键,方便后续遍历:
# 将所有年度DataFrame存入字典 year_dfs = { 2013: df_in_2013, 2014: df_in_2014, 2015: df_in_2015, 2016: df_in_2016, 2017: df_in_2017, 2018: df_in_2018, 2019: df_in_2019, 2020: df_in_2020, 2021: df_in_2021, 2022: df_in_2022 }
2. 批量统计火灾记录数
遍历字典,一次性计算所有年份的唯一记录数,结果存入字典或DataFrame:
total_records = {} for year, df in year_dfs.items(): total_records[year] = df['id'].nunique() # 可选:转为DataFrame便于后续分析展示 import pandas as pd records_summary = pd.DataFrame.from_dict(total_records, orient='index', columns=['total_fire_records'])
3. 批量计算过火面积
复用遍历逻辑,完成空值填充、求和、格式化的全流程:
total_burn_area_measure = " ha" total_burnt_areas = {} for year, df in year_dfs.items(): # 填充空值后求和,避免空值影响计算结果 burnt_area_total = df['icnf.burnArea.total'].fillna(0).sum() # 格式化数值并拼接单位 total_burnt_areas[year] = "{:.2f}".format(burnt_area_total) + total_burn_area_measure # 可选:转为DataFrame burnt_area_summary = pd.DataFrame.from_dict(total_burnt_areas, orient='index', columns=['total_burnt_area'])
4. 合并结果(可选)
如果需要将记录数和过火面积整合到同一表格:
final_summary = records_summary.join(burnt_area_summary)
优势说明
- 后续新增年份时,仅需在
year_dfs字典中添加对应DataFrame,无需修改处理逻辑 - 所有计算逻辑统一维护,减少重复代码和出错概率
- 结构化的结果(字典/DataFrame)更便于后续可视化或数据发布
内容的提问来源于stack exchange,提问作者Jorge Gomes
相关产品推荐
相关产品推荐

