根据你提供的代码,有几个原因可能导致循环不按预期运行:
1. 数据问题:请确保你的输入数据文件 "2022_APMCM_C_Data.csv" 中的数据是正确的,没有任何格式问题或者缺失值。你可以尝试打印出读取到的数据来检查它们是否符合预期。
print(df.head()) # 打印前几行数据来检查
2. 循环条件问题:循环中使用了多个条件进行索引,确保这些条件的逻辑运算是正确的。根据你的代码,对于每个月份,只有当 "AverageTemperature" 不等于0、"年" 等于当前循环的年份、"月" 等于当前循环的月份时,才会计算平均温度。你可以在循环中添加一行输出语句,打印每次循环的年份和月份,以便检查是否符合预期。
for i in range(nianbot, niantop + 1):
for j in range(1, 13):
position = (df["AverageTemperature"] != 0).tolist() and (df["年"] == i).tolist() and (df["月"] == j).tolist()
print(i, j) # 打印每次循环的年份和月份
temper.append(np.mean(df["AverageTemperature"][position]))
3. 数据类型问题:确保 "年" 和 "月" 列的数据类型是整数,而不是字符串或其他类型。你可以使用以下代码将它们转换为整数类型:
df["年"] = df["年"].astype(int)
df["月"] = df["月"].astype(int)
尝试以上几点后,重新运行代码并检查输出结果,看是否能够解决循环不按预期运行的问题。如果问题仍然存在,可以提供更多的信息和错误提示,以便进一步调试和帮助你解决问题。
如果问题已经解决,请设置最佳答案 |