Python爬取天气数据并做可视化分析

作者:搬砖的石头2024.01.17 10:31浏览量:2

简介:本文将介绍如何使用Python爬取天气数据,并进行可视化分析。我们将使用requests和BeautifulSoup库来爬取数据,并使用matplotlib和seaborn库进行可视化。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

在开始之前,请确保你已经安装了以下Python库:requests、BeautifulSoup、matplotlib和seaborn。你可以使用以下命令来安装它们:

  1. pip install requests beautifulsoup4 matplotlib seaborn

接下来,我们将编写一个Python脚本,使用requests和BeautifulSoup库来爬取天气数据,并使用matplotlib和seaborn库进行可视化。
首先,我们需要找到一个提供天气数据的网站,并确定其API或数据抓取方式。以中国天气网为例,我们可以使用其提供的API来获取天气数据。
接下来,我们将编写一个Python脚本来获取指定城市的天气数据,并将其保存为CSV文件。

  1. import requests
  2. from bs4 import BeautifulSoup
  3. import pandas as pd
  4. # 定义城市和日期
  5. city = '北京'
  6. date = '2023-07-01'
  7. # 发送HTTP请求获取天气数据
  8. url = f'http://www.weather.com.cn/weather/{city}/{date}.shtml'
  9. response = requests.get(url)
  10. soup = BeautifulSoup(response.text, 'html.parser')
  11. # 提取天气数据
  12. weather_data = soup.find('div', {'class': 'weather'})
  13. temperatures = weather_data.find_all('p')
  14. temperatures = [temp.text for temp in temperatures if '℃' in temp.text]
  15. humidity = weather_data.find('p', {'class': 'humidity'}).text.strip()
  16. wind = weather_data.find('p', {'class': 'wind'}).text.strip()
  17. # 将天气数据保存为CSV文件
  18. df = pd.DataFrame({
  19. 'Temperature': temperatures,
  20. 'Humidity': humidity,
  21. 'Wind': wind
  22. })
  23. df.to_csv(f'weather_{city}_{date}.csv', index=False)

现在我们已经将天气数据保存为CSV文件,接下来我们将进行可视化分析。
首先,我们将读取CSV文件并将其转换为Pandas DataFrame。然后,我们可以使用seaborn库来绘制各种图表,例如温度分布图、湿度分布图等。这里是一个示例代码:

  1. import matplotlib.pyplot as plt
  2. import seaborn as sns
  3. import pandas as pd
  4. # 读取CSV文件并转换为Pandas DataFrame
  5. df = pd.read_csv(f'weather_{city}_{date}.csv')
  6. # 绘制温度分布图
  7. plt.figure(figsize=(10, 6))
  8. sns.histplot(df['Temperature'], bins=10, kde=True)
  9. plt.title(f'温度分布图 - {city} {date}')
  10. plt.xlabel('温度')
  11. plt.ylabel('频数')
  12. plt.show()
article bottom image

相关文章推荐

发表评论