超友好!气象 Python 训练营 ②闯关3

超友好!气象 Python 训练营 ② 闯关3

Q1: 读取 /home/mw/input/beijing_weather5275/beijing_weather.csv 文件,计算 2021-09-18 00:00:00~2021-09-24 00:00:00 北京最高和最低露点温度之差(保留整数位)。

正常做法

import pandas as pd 
import math
import numpy as np
def calculate_dewpoint(t, h):
    logex = 0
    dew = 0
    logex = 0.66077+7.5*t/(237.3+t)+ (math.log10(h)-2)
    dew = (logex-0.66077)*237.3/(0.66077+7.5-logex)
    return dew
#### 数据清洗,获取异常值的行号####
def three_sigma(ser):
    mean_data=ser.mean()
    std_data=ser.std()
    rule=(mean_data-3*std_data > ser) | (mean_data+3*std_data < ser)
    index=np.arange(ser.shape[0])[rule]
    return index

df  = pd.read_csv('/home/mw/input/beijing_weather5275/beijing_weather.csv')
error_index = []
for i in ['t','rh']:
    index = three_sigma(df[i])
    error_index = np.append(error_index,index)
error_index = np.unique(error_index)#去除重复的行号
df = df.drop(error_index).reset_index(drop = True) #删除异常值并重新设置索引
dew_point = [calculate_dewpoint(df['t'][i], df['rh'][i]) for i in range(df.shape[0])]
a1 = int(max(dew_point) - min(dew_point))

不正常做法

a1= 9
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值