用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')

 

posted @ 2020-03-25 17:18  Shilo  阅读(1793)  评论(0编辑  收藏  举报