Python爬取天气数据并做可视化分析
2024.01.17 10:31浏览量:2简介:本文将介绍如何使用Python爬取天气数据,并进行可视化分析。我们将使用requests和BeautifulSoup库来爬取数据,并使用matplotlib和seaborn库进行可视化。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
在开始之前,请确保你已经安装了以下Python库:requests、BeautifulSoup、matplotlib和seaborn。你可以使用以下命令来安装它们:
pip install requests beautifulsoup4 matplotlib seaborn
接下来,我们将编写一个Python脚本,使用requests和BeautifulSoup库来爬取天气数据,并使用matplotlib和seaborn库进行可视化。
首先,我们需要找到一个提供天气数据的网站,并确定其API或数据抓取方式。以中国天气网为例,我们可以使用其提供的API来获取天气数据。
接下来,我们将编写一个Python脚本来获取指定城市的天气数据,并将其保存为CSV文件。
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 定义城市和日期
city = '北京'
date = '2023-07-01'
# 发送HTTP请求获取天气数据
url = f'http://www.weather.com.cn/weather/{city}/{date}.shtml'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取天气数据
weather_data = soup.find('div', {'class': 'weather'})
temperatures = weather_data.find_all('p')
temperatures = [temp.text for temp in temperatures if '℃' in temp.text]
humidity = weather_data.find('p', {'class': 'humidity'}).text.strip()
wind = weather_data.find('p', {'class': 'wind'}).text.strip()
# 将天气数据保存为CSV文件
df = pd.DataFrame({
'Temperature': temperatures,
'Humidity': humidity,
'Wind': wind
})
df.to_csv(f'weather_{city}_{date}.csv', index=False)
现在我们已经将天气数据保存为CSV文件,接下来我们将进行可视化分析。
首先,我们将读取CSV文件并将其转换为Pandas DataFrame。然后,我们可以使用seaborn库来绘制各种图表,例如温度分布图、湿度分布图等。这里是一个示例代码:
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# 读取CSV文件并转换为Pandas DataFrame
df = pd.read_csv(f'weather_{city}_{date}.csv')
# 绘制温度分布图
plt.figure(figsize=(10, 6))
sns.histplot(df['Temperature'], bins=10, kde=True)
plt.title(f'温度分布图 - {city} {date}')
plt.xlabel('温度')
plt.ylabel('频数')
plt.show()

发表评论
登录后可评论,请前往 登录 或 注册