Python气象数据分析

记录《Python数据分析实战》一书中关于意大利北部沿海地区气象数据分析的练习。

此次分析的目的是验证靠海对气候的影响,因此,选取10个城市分析他们的天气数据,其中5个城市距离海100公里以内,另外5个城市距离海100~400公里距离。此外,为了避免山区气候对天气数据造成影响,选取的城市均来自平原地区。

1. 加载数据集

# 导入模块
import numpy as np
import pandas as pd
import datetime

#导入数据可视化模块
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
from dateutil import parser

# 加载数据集
df_ferrara = pd.read_csv('WeatherData/ferrara_270615.csv')
df_milano = pd.read_csv('WeatherData/milano_270615.csv')
df_mantova = pd.read_csv('WeatherData/mantova_270615.csv')
df_ravenna = pd.read_csv('WeatherData/ravenna_270615.csv')
df_torino = pd.read_csv('WeatherData/torino_270615.csv')
df_asti = pd.read_csv('WeatherData/asti_270615.csv')
df_bologna = pd.read_csv('WeatherData/bologna_270615.csv')
df_piacenza = pd.read_csv('WeatherData/piacenza_270615.csv')
df_cesena = pd.read_csv('WeatherData/cesena_270615.csv')
df_faenza = pd.read_csv('WeatherData/faenza_270615.csv')

2. 温度数据分析

a. 气温走势

分析一天中气温变化趋势,以米兰为例

# 分析一天中气温变化趋势,x轴为时间,y轴为气温
y1 = df_milano['temp']
x1 = df_milano['day']

# 由于原始数据中【day】列中时间格式为:2015/6/27  1:54:14 PM
# 用dateutil.parser将日期数据转换成datetime格式
day_milano = [parser.parse(x) for x in x1]

# 调用subplot函数, fig是图像对象,ax是坐标轴对象
fig, ax = plt.subplot()

# 将x轴坐标刻度标签逆时针旋转70度,方便查看
plt.xticks(rotation=70)

# 设置时间格式为24:00(时:分)('%H:%M')
hours = mdates.DateFormatter('%H:%M')

# 设置x轴时间显示的格式为以上设置的格式
ax.xaxis.set_major_formatter(hours)

# 作折线图
ax.plot(day_milano,y1,'r')

由上图可知,气温走势接近正弦曲线,从早晨开始,气温逐渐上升,最高温出现在下午6点钟,其中30度以上的气温出现在下午3点到7点之间,随后气温逐渐下降,在次日早上6点达到最低。

b. 多城市气温走势对比

选取三个最靠近海的城市:ravenna, faenza, cesena和三个最不靠海的城市:milano, asti, torino

ax.plot(x,y)作折线图对比。

y1 = df_ravenna['temp']
x1 = df_ravenna['day']
y2 = df_faenza['temp']
x2 = df_faenza['day']
y3 = df_cesena['temp']
x3 = df_cesena['day']
y4 = df_milano['temp']
x4 = df_milano['day']
y5 = df_asti['temp']
x5 = df_asti['day']
y6 = df_torino['temp']
x6 = df_torino['day']

day_ravenna = [parser.parse(x) for x in x1]
day_faenza = [parser.parse(x) for x in x2]
day_cesena = [parser.parse(x) for x in 
  • 7
    点赞
  • 162
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值