for iyear in range(styr,edyr+1): wka = data[data['Year_new']==iyear].copy() diff_max = 0 stdate = 0 for i in range(0,len(wka)-2): t_1 = wka.iloc[i]['TEM_Min'] t_2 = wka.iloc[i+1]['TEM_Min'] t_3 = wka.iloc[i+2]['TEM_Min'] diff = max(t_1-t_2,t_1-t_3,t_2-t_3) if diff > diff_max: diff_max = diff stdate = wka.iloc[i]['date'] out_dw = out_dw.append({'年':wka.iloc[0]['Year_new'],'stdate':stdate,'diff':diff_max},ignore_index=True) out_dw['低温赔付'] = out_dw.apply(lambda x:get_money_dw(x['diff']),axis=1) out_dw.to_csv(str(staCode)+'低温具体赔付详情.csv',encoding='gbk')转成R代码
时间: 2023-06-15 10:07:31 浏览: 197
for (iyear in styr:edyr){
wka <- data[data$Year_new==iyear,]
diff_max <- 0
stdate <- 0
for (i in 1:(nrow(wka)-2)){
t_1 <- wka$TEM_Min[i]
t_2 <- wka$TEM_Min[i+1]
t_3 <- wka$TEM_Min[i+2]
diff <- max(t_1-t_2,t_1-t_3,t_2-t_3)
if (diff > diff_max){
diff_max <- diff
stdate <- wka$date[i]
}
}
out_dw <- rbind(out_dw, data.frame('年'=wka$Year_new[1], 'stdate'=stdate, 'diff'=diff_max))
}
out_dw$低温赔付 <- apply(out_dw, 1, function(x) get_money_dw(x['diff']))
write.csv(out_dw, paste0(staCode, '低温具体赔付详情.csv'), row.names=FALSE, fileEncoding='gbk')
相关问题
data = data[(data['mon_day']>=1210) | (data['mon_day']<=430)].copy() data['Year_new'] = np.where(data['mon_day']<=430,data['Year']-1,data['Year']) out_dw = pd.DataFrame(columns={'年'}) for iyear in range(styr,edyr+1): wka = data[data['Year_new']==iyear].copy() diff_max = 0 stdate = 0 for i in range(0,len(wka)-2): t_1 = wka.iloc[i]['TEM_Min'] t_2 = wka.iloc[i+1]['TEM_Min'] t_3 = wka.iloc[i+2]['TEM_Min'] diff = max(t_1-t_2,t_1-t_3,t_2-t_3) if diff > diff_max: diff_max = diff stdate = wka.iloc[i]['date'] out_dw = out_dw.append({'年':wka.iloc[0]['Year_new'],'stdate':stdate,'diff':diff_max},ignore_index=True)转成R代码
data <- data[(data$mon_day>=1210) | (data$mon_day<=430),]
data$Year_new <- ifelse(data$mon_day<=430, data$Year-1, data$Year)
out_dw <- data.frame(matrix(ncol = 2, nrow = 0))
colnames(out_dw) <- c("年", "stdate")
for (iyear in styr:edyr) {
wka <- data[data$Year_new == iyear,]
diff_max <- 0
stdate <- 0
for (i in 1:(nrow(wka)-2)) {
t_1 <- wka[i, "TEM_Min"]
t_2 <- wka[i+1, "TEM_Min"]
t_3 <- wka[i+2, "TEM_Min"]
diff <- max(t_1-t_2, t_1-t_3, t_2-t_3)
if (diff > diff_max) {
diff_max <- diff
stdate <- wka[i, "date"]
}
}
out_dw <- rbind(out_dw, c(iyear, stdate))
}
colnames(out_dw) <- c("年", "stdate", "diff") # 如果需要 diff 列,可以添加该行代码
for iyear in range(styr,edyr+1): wka = data[data['Year_new']==iyear].copy() diff_max = 0 stdate = 0 for i in range(0,len(wka)-2): t_1 = wka.iloc[i]['TEM_Min'] t_2 = wka.iloc[i+1]['TEM_Min'] t_3 = wka.iloc[i+2]['TEM_Min'] diff = max(t_1-t_2,t_1-t_3,t_2-t_3) if diff > diff_max: diff_max = diff stdate = wka.iloc[i]['date'] out_dw = out_dw.append({'年':wka.iloc[0]['Year_new'],'stdate':stdate,'diff':diff_max},ignore_index=True) out_dw['低温赔付'] = out_dw.apply(lambda x:get_money_dw(x['diff']),axis=1) out_dw.to_csv(str(staCode)+'低温具体赔付详情.csv',encoding='gbk')
这段代码是用来计算每年的最低温度和前后两天的温度差,然后根据温度差来确定起始日期,并计算相应的低温赔付金额。具体来说,代码通过循环遍历每一年的数据,对于每一天的最低温度,计算它与前后两天最低温度的差值,取这三个差值的最大值作为该天的温度变化值(也就是diff)。然后根据所有天中diff的最大值,确定起始日期和对应的低温赔付金额。最后将结果保存到CSV文件中。
阅读全文
相关推荐
















