首页 > 其他分享 >行业与气象数据的相关性探索

行业与气象数据的相关性探索

时间:2024-05-25 21:44:05浏览次数:25  
标签:tem 探索 df ele kw 相关性 out wind 气象

行业数据与气象数据的相关性探索

目录

缺失值的处理方式

通过筛查,发现行业表中各类行业均缺失2021年1月26日的数据,对此天的气象数据选择跳过,其余进行连接

定性数据的赋值方式

1.行业类型

普通工业通常指的是一般性的工业生产活动,如制造业,采矿业,建筑业等;非普通工业用电则可能指的是一些特殊或非常规的工业用电活动,包括如高能耗行业,高污染行业,高技术含量行业;商业用电主要指的是商业场所和办公场所的用电,包括商店,办公楼,餐厅,酒店等地方的用电;大工业用电通常指的是工业生产中大型工厂,制造业,重工业等领域的用电需求。

所以我们赋值为:大工业用电:4;非普通用电:3;普通工业用电:2;商业用电:1

2.天气状况

  • 晴:4
  • 晴间多云:3
  • 局部多云:2
  • 多云:1
  • 阴/雾:0
  • 小雨:-1
  • 中雨:-2
  • 阵雨:-3
  • 大雨:-4
  • 雷阵雨:-5
  • 暴雨:-6

一般来说,天气越恶劣,对电力需求的影响越大,所以分数按照这个顺序来赋值。分数越高表示天气对电力需求的影响越好,分数越低表示天气对电力需求的影响越坏。

3.风向情况

  1. 东风8-9级:9
  2. 东南风4-5级:8
  3. 南风4~5级:7
  4. 东风3~4级:6
  5. 西南风3-4级:5
  6. 南风3-4级:5
  7. 东南风3-4级:5
  8. 东北风3-4级:4
  9. 东北偏东风2:3
  10. 西南风1-2级:3
  11. 南风1-2级:3
  12. 东南风1-2级:3
  13. 东风1-2级:3
  14. 东北风1-2级:2
  15. 北风4-5级:1
  16. 北风3~4级:1
  17. 北风3:1
  18. 北风1-2级:1
  19. 无持续风向1-2级:2
  20. 无持续风向<3级:2
  21. 无持续风向微风:2
  22. 微风<3级:2

通常来说,风向对电力需求的影响主要取决于其风力大小和气候条件。这种评分方式考虑了风力大小和气候条件对电力需求的影响,分数越高表示对电力需求的影响越好,分数越低表示影响越不利。但实际影响还可能受到其他因素的影响,比如地理位置、季节等。

4.温度数据

去掉其后的单位,转化为纯数据。

5.时间数据

考虑到格式不同,这里选择直接忽略这列数据。但是或许有进行累计等的更好的处理方式。

数据预处理

因为直接进行相关性分析效果不是很理想,我们选择对每列数据分别进行标准化。

符号说明

  • job 行业类型
  • ele_most(kw) 有功功率最大值(kw)
  • ele_least(kw) 有功功率最小值(kw)
  • weather 天气状况
  • day_wind 白天风力风向
  • night_wind 夜晚风力风向
  • low_tem 最低温度
  • high_tem 最高温度

代码实现

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt 
import seaborn as sns ;sns.set(color_codes=True)#用color_codes预定的颜色
import chardet#用于判断表中数据的类型
from sklearn.preprocessing import StandardScaler#为了标准化
#df = pd.read_csv("python_play.csv")
# 读取CSV文件
#df.head()
# 显示数据框的前几行
#with open('python_play.csv', 'rb') as f:
 #   content = f.read()
  #  print(content)
with open('python_play.csv', 'rb') as f:
    content = f.read()
    encoding = chardet.detect(content)['encoding']

print(encoding)

out:
ascii


# 读取CSV文件,指定编码为ascii
df = pd.read_csv('python_play.csv', encoding='ascii',usecols=lambda column: column != 'time')
df.head()

out:

job ele_most(kw) ele_least(kw) weather day_wind night_wind low_tem high_tem
0 4 117888.3300 51526.5690 0.0 2 2 7 12
1 4 126843.7914 63638.4294 -1.0 2 2 6 11
2 4 130286.1294 102048.2754 0.0 2 2 9 15
3 4 133018.6344 104466.0762 -0.5 2 2 12 17
4 4 133504.4784 99507.3528 -0.5 2 2 12 17

scaler = StandardScaler()
# 初始化标准化器
df_normalized = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
# 对每列数据进行标准化
df_normalized.head()

out:

job ele_most(kw) ele_least(kw) weather day_wind night_wind low_tem high_tem
0 1.336246 1.027821 0.658652 0.148206 0.375726 0.375726 -2.237758 -2.574969
1 1.336246 1.183029 0.992150 -0.253312 0.375726 0.375726 -2.404345 -2.737512
2 1.336246 1.242688 2.049759 0.148206 0.375726 0.375726 -1.904584 -2.087342
3 1.336246 1.290045 2.116332 -0.052553 0.375726 0.375726 -1.404822 -1.762257
4 1.336246 1.298465 1.979795 -0.052553 0.375726 0.375726 -1.404822 -1.762257

job,ele_most(kw),ele_least(kw)与电力系统相关;weather,day_wind,night_wind,low_tem,high_tem与天气相关。

df_normalized.corr()

out:

job ele_most(kw) ele_least(kw) weather day_wind night_wind low_tem high_tem
job 1.000000 0.126761 0.645022 0.009319 -0.017214 -0.017214 -0.005267 -0.001947
ele_most(kw) 0.126761 1.000000 0.710800 -0.099735 0.108485 0.108485 0.205206 0.182597
ele_least(kw) 0.645022 0.710800 1.000000 -0.039749 0.041487 0.041487 0.100280 0.087170
weather 0.009319 -0.099735 -0.039749 1.000000 -0.093055 -0.093055 -0.364826 -0.206647
day_wind -0.017214 0.108485 0.041487 -0.093055 1.000000 1.000000 0.131514 0.074132
night_wind -0.017214 0.108485 0.041487 -0.093055 1.000000 1.000000 0.131514 0.074132
low_tem -0.005267 0.205206 0.100280 -0.364826 0.131514 0.131514 1.000000 0.935022
high_tem -0.001947 0.182597 0.087170 -0.206647 0.074132 0.074132 0.935022 1.000000

sns.pairplot(df_normalized)

下面为警告:
D:\anaconda3\envs\FLpyth38\lib\site-packages\seaborn\axisgrid.py:123: UserWarning: The figure layout has changed to tight
self._figure.tight_layout(*args, **kwargs)

out:
<seaborn.axisgrid.PairGrid at 0x1f4418dd430>

png

sns.heatmap(df_normalized.corr())

out:

<Axes: >

png


sns.clustermap(df_normalized.corr())

out:

<seaborn.matrix.ClusterGrid at 0x1f446394d60>

png


species=df_normalized.pop("job")
g=sns.clustermap(df_normalized)

out:

png


sns.jointplot(x='ele_most(kw)',y='low_tem',data=df_normalized)

out:

<seaborn.axisgrid.JointGrid at 0x1f4480fa9d0>

png


sns.jointplot(x='ele_most(kw)',y='low_tem',data=df_normalized,kind='hex')

out:

<seaborn.axisgrid.JointGrid at 0x1f448ba1640>

png


sns.jointplot(x='ele_most(kw)',y='low_tem',data=df_normalized,kind='reg')

out:

<seaborn.axisgrid.JointGrid at 0x1f4439012b0>

png


直线旁的灰色是上下95%的置信区间

结论说明

以目前的数据处理方式,电力系统与天气状况类的数据相关程度最高为ele_most(kw)与low_tem,相关程度为0.205206,最低为job与high_tem,相关程度为-0.001947

标签:tem,探索,df,ele,kw,相关性,out,wind,气象
From: https://www.cnblogs.com/HYLOVEYOURSELF/p/18213015

相关文章

  • 探索SPI单线传输模式:时钟线与数据传输的简化之道
    探索SPI单线传输模式:时钟线与数据传输的简化之道在当今的嵌入式系统和微控制器通信中,串行外设接口(SPI)因其高速、全双工和同步的特点而广受欢迎。然而,随着设备尺寸和复杂性的不断减少,对SPI通信的简化需求也日益增加。在这种背景下,SPI的单线传输模式成为了一个备受关注的解决方案。......
  • 探索大模型的智慧之源:如何使其更“聪明”?
            在人工智能技术的浪潮中,大模型已经成为了引领变革的重要力量。它们在语言理解、图像识别、自然语言生成等多个领域展现出了令人瞩目的能力。然而,正如任何技术进步都伴随着挑战,大模型在理解力、泛化能力和适应性方面仍有待提升。那么,我们如何让这些庞然大物变得......
  • 【院庆二十年 · 优秀教师事迹】张宪超:人工智能领域难题的探索者
    地址:https://mp.weixin.qq.com/s?__biz=MzI3NDEwMDM4MA==&mid=2650868414&idx=1&sn=f2e4883f7f8b946b509288a4852ba07b&chksm=f0ec934dc79b1a5b120912f4055fa0bc3e7135e4a226b4693c110d053851b5cd7f2527d2e280&scene=27近年来,人工智能的发展如火如荼,正在迅速改变着世界。人......
  • 探索c语言:深入了解指针
    1.内存和地址1.1内存和地址1.1内存我们可以通过一个小案例来了了解:假设有一栋宿舍楼,把你放在楼里,楼上有100个房间号,但房间里没有编号,刚好你的一个朋友找你玩,如果想要找到你就得挨个房间找,这样子效率很低,但是如果我们根据楼层和楼层的房间号的情况,给每个房间编上号,如: 1......
  • Linux命令探索:深入了解which命令
    Linux命令探索:深入了解which命令在Linux系统中,which命令是一个非常有用的工具,用于定位并显示给定命令的绝对路径。本文将详细介绍which命令的用法,帮助读者更好地理解和运用这个命令。了解which命令which命令用于查找并显示系统中某个命令的绝对路径。它的基本语法如下:which......
  • 探索Linux中的神奇工具:深入了解find命令
    探索Linux中的神奇工具:深入了解find命令在Linux系统中,find命令是一个强大且灵活的工具,用于在文件系统中查找符合条件的文件和目录。本文将详细介绍find命令的基本用法和一些常见选项,帮助读者更好地理解和运用这个命令。了解find命令find命令用于在指定目录及其子目录中查找......
  • 探索Go语言的原子操作秘籍:sync/atomic.Value全解析
    引言​在并发编程的世界里,数据的一致性和线程安全是永恒的话题。Go语言以其独特的并发模型——goroutine和channel,简化了并发编程的复杂性。然而,在某些场景下,我们仍然需要一种机制来保证操作的原子性。这就是sync/atomic.Value发挥作用的地方。原子性:并发编程的基石​......
  • NFT数藏平台开发:探索数字艺术的新领域
    随着区块链技术的飞速发展和普及,NFT(非同质化通证)作为一种独特的数字资产形式,正逐渐改变我们对数字艺术、收藏品和知识产权的认知。NFT数藏平台作为连接创作者、收藏家和市场的桥梁,其开发不仅为数字艺术提供了新的展示和交易渠道,更为整个数字艺术生态带来了深远的影响。基于基......
  • 【简单探索微软Edge】
    ......
  • AI大模型探索之路-实战篇5: Open Interpreter开放代码解释器调研实践
    系列篇章......