用python计算连续高温天数
留存备份。
简单背景:因为想要计算连续高温天数又恰好想用python所以试了试 居然能行而且快
数据说明:
数据集名称 data
行为日期,按升序排列
第3列为当日最高气温
第8列为需要计算的连续高温天数
理论上高温是指35度以上 因为地理原因调整为30度
前10行的连续高温天数我自己打上去了 嫌麻烦可以从某一个不到高温的日子开始计算
其他:
输出csv出现了中文乱码 最后通过encoding解决了(utf-8不可以但是utf_8_sig可以)
所以代码是:
import pandas as pd data=pd.read_csv(open('D:/data/weather_test2.csv')) print(data.head(5)) print(data.iat[1,1])#第二行第二列,看看python是咋算行列 #已经试算1到10行,实际循环从11行开始 #用i代表实际行数(便于我理解,结合python的写法实际"i-1"才是我指的i行) #range产生的书不含右边的数,实际上需要计算的行数是11到396 #行数可以用data.shape[0]或者len(data)取得,我比较熟悉原数据就直接写了 for i in range(11,397): if data.iat[i-1,2]<30: data.iat[i-1,7]=0#当天最高气温低于30则连续高温天数为0 elif data.iat[i-2,7]==0: data.iat[i-1,7]=1#当天最高温不低于30但前一天连续高温天数为0 那么当天连续天气为1 else: data.iat[i-1,7]=data.iat[i-2,7]+1#除了当天非高温以及前一天非高温,就用前一天的连续高温天数+1 #计算成功YEAH!! #输出 data.to_csv('D:/data/weather_test2_after.csv', sep=',', header=True, index=True,encoding='utf_8_sig')
以上为全部内容■■■