我想统计1962到2020年日降雨数据的 每年 最大降雨连续日数
我想用两个for循环,第一个for循环提取每年的数据;第二个for循环统计那一年的最大降雨连续日数
k = list(range(0, 59, 1))
zh_max = []
sz_max = []
for m in k:
n=k+1962
l = str(n)
li1 = Rain_zh[l]
li2 = Rain_sz[l]
max_time1 = 0 # 已知最大连续出现次数初始为0
cur_time1 = 1 # 记录当前元素是第几次连续出现
pre_element1 = None # 记录上一个元素是什么
max_time2 = 0 # 已知最大连续出现次数初始为0
cur_time2 = 1 # 记录当前元素是第几次连续出现
pre_element2 = None # 记录上一个元素是什么
for i in li1:
if i == pre_element1: # 如果当前元素和上一个元素相同,连续出现次数+1,并更新最大值
cur_time1 += 1
max_time1 = max((cur_time1, max_time1))
else: # 不同则刷新计数器
pre_element1 = i
cur_time1 = 1
zh_max.append(max_time1)
datetimelike index using a single string to slice the rows, like `frame[string]`, is deprecated and will be removed in a future version. Use `frame.loc[string]` instead.
Traceback (most recent call last):
File "C:\Users\HP\AppData\Local\Temp/ipykernel_2032/1729459897.py", line 40, in <module>
n=k+1962
TypeError: can only concatenate list (not "int") to list
想请问解决的方法,或者解决的新思路,谢谢大家!
k是列表不能与数值相加
n=k+1962
应该改成
n=m+1962
k 改成 m
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
首先报错的原因是list(列表)不能与int(整数)相加,在你的代码中
for m in k
是将k这个列表里面的元素依次传递给了m这个变量,这个变量的类型跟列表里面的元素类型是一样的
这里可以这样修改
将
n=k+1962
改为
n=m+1962