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

如何循环按月份拆分pandas DataFrame并计算各分组的列相关系数

你的原有代码未输出预期结果有两个核心原因:

  • 嵌套了多余的while循环,且循环内没有更新selectmonth变量的逻辑,程序会一直卡在第一个月的处理流程中死循环,无法执行后续月份的处理
  • 循环体内没有添加打印逻辑,计算得到的相关系数结果没有输出,最后仅执行了一行空打印,看不到任何有效内容

实现1-12月自动循环处理的代码

写法1:沿用你的手动处理逻辑套入循环

直接遍历1-12月,去掉多余的while嵌套即可:

import pandas as pd

dados = pd.read_excel(r'XXX')

for selectmonth in range(1, 13):
    dfdatas = dados.loc[dados['month'] == selectmonth]
    # 跳过无数据的月份,避免计算报错
    if dfdatas.empty:
        continue
    print('\n Voce selecionou o mês: ', selectmonth)
    correlacao2 = dfdatas.corr().round(4).iloc[0]
    print(correlacao2)

写法2:用pandas groupby实现更高效的分组处理

无需手动判断月份筛选逻辑,自动按month字段分组遍历所有存在的月份数据:

import pandas as pd

dados = pd.read_excel(r'XXX')

for selectmonth, dfdatas in dados.groupby('month'):
    # 仅处理1-12月的合法月份数据,过滤异常值
    if 1 <= selectmonth <= 12:
        print('\n Voce selecionou o mês: ', selectmonth)
        correlacao2 = dfdatas.corr().round(4).iloc[0]
        print(correlacao2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 04:06:07