天气数据分析

天气数据与日常生活紧密相连,不管是制定出行计划,还是安排农业生产,精准的气象信息都发挥着至关重要的作用。Python 作为一门功能强大、应用领域极为广泛的编程语言,凭借其出色的爬虫技术,能从网页中高效获取所需数据。接下来,我们将运用 Python 爬虫抓取上海市的天气数据,并通过tableau可视化,把抽象的数据转化为直观的图表,挖掘天气背后的规律与奥秘。

一.数据爬取

import pandas as pd

# 爬取网页中的表格数据
df = pd.read_html("http://www.tianqihoubao.com/weather/top/zhaoqing.html", encoding='gbk', header=0)[0]

# 去除第一行数据
df = df.iloc[1:, :]

# 将数据保存为 CSV 文件
csv_file_path = 'zhaoqing_weather.csv'
try:
    df.to_csv(csv_file_path, index=False)
    print(f"数据已成功保存到 {csv_file_path}")
except Exception as e:
    print(f"保存数据时出现错误: {e}")

使用read_html函数爬取网页上的天气数据,并且将数据保存到CSV文件中,read_html常用的函数参数如下:

  • io:url、html文本、本地文件等
  • header:标题行
  • flavor:解析器
  • skiprows:跳过的行
  • attrs:属性,例如:attrs = {'id':'table'}
  • parse_dates:解析日期

二、数据导入

打开 Tableau ,点击“新建工作簿”,在弹出的“连接”窗口中选择“文本文件”,找到并选中刚才准备好的天气数据 CSV 文件,点击“打开”。Tableau 会自动对数据进行预览和初步解析,我们可以在这里检查数据的列名、数据类型等是否正确。如果发现某些字段的数据类型不正确,比如日期字段被识别为字符串,可以手动更改其数据类型,确保数据能够正确地用于后续分析。

三、创建视图

(一)天气情况分析

      创建柱状图

      在左侧的“数据”窗格中,将“白天天气”字段拖放到“行”功能区,将“记录数”字段拖放到“行”功能      区。Tableau 会自动生成一个柱状图图,横轴表示天数,纵轴表示天气状况。

研究白天的天气状况,由图像可看出,这30天内晴天有6天,多云有13天,阴天有3天,阵雨有7天,而中雨天只有1天,肇庆的天气以多云天气居多。

与上面类似,把夜间数据也拖入“行”功能区。

研究夜间的天气状况,由图像可以看出,这30天内晴天有6天,阴天有8天,阵雨有3天,多云有12天,而中雨天只有1天,整体天气状况多云。

(二)风力方向分析 

在左侧的“数据”窗格中,将“白天风力情况”字段拖放到“行”功能区,将“记录数”字段拖放到“行”功能  区。Tableau 会自动生成一个柱状图图,横轴表示天数,纵轴表示白天风力情况。

  从上图可以看出,肇庆的白天风向都是北风1-3级。

夜间风力风向同上:

从上图可以看出,肇庆的夜间风向都是北风1-3级,综合来说,肇庆市这30天的风向都是北风。

(三)温度趋势分析

1.数据处理

   由于爬取的数据中温度列为字符串,所以我们需要将原数据进行处理,确保数据能够正确地用于后续分析。

  创建计算字段

  • 在“数据”窗格中,右键点击白天温度字段,选择“创建计算字段”。

  • 在弹出的“创建计算字段”对话框中,白天温度。

  • 在公式框中,使用 int() 函数将字符串转换为数字。例如:

 

  验证转换结果

  • 创建计算字段后,新的字段会出现在“数据”窗格中,显示为绿色(表示其数据类型为数字)。

  • 将新的计算字段拖到视图中(如“行”或“列”功能区),并观察数据是否正确显示。如果数据中有无法转换为数字的值(如空字符串或非数字字符),Tableau 会将这些值显示为 NULL

2.创建折线图 

  • 在左侧的“数据”窗格中,将“日期”字段拖放到“列”功能区,将“白天温度”与“夜间温度”字段拖放到“行”功能区。Tableau 会自动生成一个折线图,横轴表示日期,纵轴表示温度,通过折线的起伏可以直观地看到这30天内温度的变化趋势。

 四、仪表板制作

将上述创建的多个视图整合到一个仪表板中,可以更全面地展示天气数据的各个方面。在 Tableau 中点击“新建仪表板”,将天气状况分布视图、风力风向图以及温度趋势分析视图分析视图依次拖放到仪表板中,调整它们的大小和位置,使其布局合理、美观。还可以为仪表板添加标题、文字说明和筛选器等交互元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值