张家口每天平均气温,降雨散点图
import pandas as pd
import matplotlib.pyplot as plt
import openpyxl
from pandas import Series, DataFrame
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_excel('../54401.01.02.2005.15.05.2022.1.0.0.cn.utf8.00000000.xls', header=6)
def change_time(x):
return x.split(' ')[0]
df['当地时间 张家口市'] = df['当地时间 张家口市'].map(change_time)
df['RRR'].fillna(0, inplace=True)
df['RRR'] = df.RRR.map(lambda x: 0 if x == '无降水' or x == '降水迹象' else x)
time_lis = df['当地时间 张家口市'].unique()
mean_lis = []
max_lis = []
min_lis = []
RRR_lis = []
for i in range(0, len(time_lis)):
newdf = df[df['当地时间 张家口市'] == time_lis[i]]
mean_lis.append(newdf['T'].mean())
max_lis.append(newdf['T'].max())
min_lis.append(newdf['T'].min())
RRR_lis.append(newdf['RRR'].sum())
# 创造每天的记录
perdayDict = {'时间': time_lis, '平均气温': mean_lis, '最高气温': max_lis, '最低气温': min_lis, '降水量': RRR_lis}
perday_df = pd.DataFrame(perdayDict)
perday_df.to_excel("./perday_df.xlsx", encoding="utf-8")
print(perday_df)
# 绘制每天降雨量散点图
plt.scatter(time_lis, RRR_lis)
plt.title('张家口每天降雨散点图')
plt.show()
# 绘制每天平均气温散点图
plt.scatter(time_lis, mean_lis)
plt.title('张家口每天平均气温散点图')
plt.show()
张家口每年天气状况汇总
import pandas as pd
import matplotlib.pyplot as plt
from pandas import Series, DataFrame
plt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_excel('./perday_df.xlsx')
def change_time(x):
return x.split('.')[-1]
df['时间'] = df['时间'].map(change_time)
# df['RRR'].fillna(0, inplace=True)
# df['RRR'] = df.RRR.map(lambda x: 0 if x == '无降水' or x == '降水迹象' else x)
time_lis = df['时间'].unique()
hot_days = []
cold_days = []
rain_days = []
for i in range(0, len(time_lis)):
newdf = df[df['时间'] == time_lis[i]]
sumdays_hot = 0
sumdays_cold = 0
sumdays_rain = 0
#炎热天数
new_hot_df = newdf[newdf['最高气温'] > 30]
sumdays_hot = new_hot_df['最高气温'].count()
hot_days.append(sumdays_hot)
#寒冷天数
new_cold_df = newdf[newdf['最低气温'] < -10]
sumdays_cold = new_cold_df['最低气温'].count()
cold_days.append(sumdays_cold)
#下雨天数
new_rain_df = newdf[newdf['降水量'] != 0]
sumdays_rain = new_cold_df['降水量'].count()
rain_days.append(sumdays_rain)
plt.plot(time_lis, hot_days, color='red' ,label='每年炎热天数')
plt.plot(time_lis, cold_days, color='green',label='每年寒冷天数')
plt.plot(time_lis, rain_days, color='blue', label='每年下雨天数')
plt.title('张家口每年天气状况汇总')
plt.legend()
plt.show()