鱼C论坛

 找回密码
 立即注册
查看: 3215|回复: 10

[已解决]为什么会不按照循环走

[复制链接]
发表于 2023-8-10 16:27:37 | 显示全部楼层
在你的代码中,循环变量 j 的取值范围是从1到12,但是你的数据集中的月份可能不是连续的。因此,当 j 的值超过数据集中存在的最大月份时,循环不会停止,而是继续增加,直到达到12。这就导致了 j 的值变得很大,比如1745。

为了解决这个问题,你可以通过获取数据集中的最大月份来设置循环变量 j 的取值范围。你可以使用 df['月'].max() 来获取最大月份,然后将其作为 range() 函数的参数。

修改后的代码如下:

  1. import pandas as pd
  2. import numpy as np

  3. pd.set_option('display.unicode.east_asian_width', True)

  4. df = pd.DataFrame(pd.read_csv('2022_APMCM_C_Data.csv', encoding='gb18030'))
  5. df = df.fillna(0)
  6. nianbot = df["年"].min()
  7. niantop = df["年"].max()
  8. temper = []

  9. for i in range(nianbot, niantop + 1):
  10.     for j in range(1, df['月'].max() + 1):
  11.         position = (df["AverageTemperature"] != 0).tolist() and (df["年"] == i).tolist() and (df["月"] == j).tolist()
  12.         temper.append(np.mean(df["AverageTemperature"][position]))
  13.         print(i, j)

  14. temper = pd.DataFrame({"平均温度": np.array(temper)})
  15. temper.to_excel("平均温度.xlsx")
复制代码


通过这种方式,循环变量 j 将根据数据集中的最大月份进行循环,避免了超出范围的问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-10 05:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表