超友好!气象 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