【python】python天气气候数据抓取分析可视化
import requests
import pandas as pd
from datetime import datetime
from pyecharts.charts import Bar, Line, Map
from pyecharts import options as opts
# 获取天气数据
def get_weather_data(city, start, end):
# 这里假设有一个API可以获取天气数据,需要替换为实际的API和参数
# 示例API URL,需要替换为实际的API URL
api_url = f"https://api.example.com/weather?city={city}&start_date={start}&end_date={end}"
response = requests.get(api_url)
if response.status_code == 200:
return response.json()
return None
# 分析数据并生成报告
def analyze_and_report(data):
# 将JSON数据转换为DataFrame
df = pd.DataFrame(data)
# 转换日期格式
df['date'] = pd.to_datetime(df['date']).dt.date
# 计算每日最高温度和最低温度的平均值
df['avg_high_temp'] = df[['high_temp']].mean(axis=1)
df['avg_low_temp'] = df[['low_temp']].mean(axis=1)
# 根据平均温度绘制每日温度变化条形图
bar = (
Bar()
.add_xaxis(df['date'].unique().tolist())
.add_yaxis("平均最高温度", df[df['avg_high_temp'] > 0]['avg_high_temp'].round(1).tolist())
.add_yaxis("平均最低温度", df[df['avg_low_temp'] > 0]['avg_low_temp'].round(1).tolist())
.set_global_opts(title_opts=opts.TitleOpts(title="每日平均温度变化"))
)
# 保存并展示条形图
bar.render("avg_temp_change.html")
# 示例用法
city = "北京"
start_date = "2023-01-01"
end_date = "2023-01-31"
weather_data = get_weather_data(city, start_date, end_date)
analyze_and_report(weather_data)
这个示例代码展示了如何抓取天气数据,如何将JSON数据转换为DataFrame,如何计算每日的平均温度,并最终生成一个条形图报告。这个流程是数据分析的标准流程之一,可以作为数据分析师、机器学习工程师以及任何需要处理数据的人员的教学示例。
评论已关闭