综合项目:建筑能源得分预测报告(数据预处理)

本文详述了一项关于建筑能源得分预测的综合项目,涉及Python语法、数据清洗、缺失值处理和探索性数据分析(EDA)。通过describe()获取数据概述,使用dropna()处理缺失值,并应用corr()计算相关系数。通过sns.lmplot()进行回归图分析,识别并剔除离群点,探讨了不同变量对结果的影响,为后续特征工程和模型建立打下基础。
摘要由CSDN通过智能技术生成

python 语法盘点

在这里插入图片描述
rename 更改列名:
rename()函数(包含更改索引列列名的方法)
1 rename()可以更换列名和行名,必须写上columns或index,否则无效

在这里插入图片描述
在这里插入图片描述
Python|rename函数(列名重命名)

在这里插入图片描述
在这里插入图片描述
dataframe 的排序方法
在这里插入图片描述
describe() [25%] ## 在describe取25%和75%分位
在这里插入图片描述
在这里插入图片描述
drop.na() 参数解读

在这里插入图片描述
使用corr 计算相关系数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
sns.lmplot() 画回归图:
https://www.cnblogs.com/peixu/p/13207161.html

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

数据清洗与格式转换


在这里插入图片描述

4.1.1 导入所需的基本工具包

有些默认参数可以按照自己的需求来设置

在这里插入图片描述

import pandas as pd
import numpy as np

# API需要升级或者遗弃了,不想看就设置一下warning
pd.options.mode.chained_assignment = None

# 经常用到head(),最多展示多少条数
pd.set_option('display.max_columns', 60) 


import matplotlib.pyplot as plt
%matplotlib inline

#绘图全局的设置好了,画图字体大小
plt.rcParams['font.size'] = 24


from IPython.core.pylabtools import figsize


import seaborn as sns
sns.set(font_scale = 2)


from sklearn.model_selection import train_test_split
import warnings
warnings.filterwarnings("ignore")

- 4.1.2 数据清洗

# 加载数据
data = pd.read_csv('data/Energy_and_Water_Data_Disclosure.csv')

# 展示前3行
data.head(3)

在这里插入图片描述
在这里插入图片描述

4.1.3 数据类型与缺失值

data.info() # 可以快速让我们知道数据类型与缺失值

在这里插入图片描述
在这里插入图片描述
**

缺失值处理模板

**
在这里插入图片描述

# 缺失值Not Available转换为np.nan
#replace():描述Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),
data = data.replace({
   'Not Available':np.nan})
data.head(3)

在这里插入图片描述
kBtu/ft²等本应该是float类型,在这里是object类型,所以要转换一下 为什么会这样呢,就是因为之前该列有not availale 就会变成object类型,所以我们在前面已经将缺失值转换为 “np.nan”


#kBtu/ft²等本应该是float类型,在这里是object类型,所以要转换一下 ,以ft²、kBtu、Metric Tons CO2e等为结尾的astype一下float 

for col in list(data.columns):
    if('ft²' in col or 'kBtu' in col or 'Metric Tons CO2e' in col or 'kWh' in 
    col or 'therms' in col or 'gal' in col or 'Score' in col  ):
        data[col] = data[col].astype(float)

描述统计:只能显示数值型的数据

# 每列中只能展示数值型的count、mean、sdt等等,object不会展示
data.describe()

缺失值通用模板

看一下每列的缺失值比例,
估计大家有很多种方法可以做,可以给大家提供一个函数,聪明的同学把他当做自己的工具吧,以后你会常用到的。

定义一个函数,传进来一个DataFrame

## 缺失值的模板,通用的
#  定义一个函数,传进来一个DataFrame

def  missing_value_table(df):
    # python的pandas库中有一个十分便利的isnull()函数,它可以用来判断缺失值,把每列的缺失值算一下总和
    mis_val = df.isnull().sum()
    # 100相当于%,每列的缺失值的总和
    mis_val_precent = 100 * mis_val /len(df)
    
     # 每列缺失值的个数 、 每列缺失值的占比做成表
    mis_val_table = pd.concat( [ mis_val,mis_val_precent ] ,axis= 1)
    
    # 重命名指定列的名称 需要写清楚是indexs 还是columns.
    mis_val_table_ren_columns =  mis_val_table.rename(
    columns = {
    0 : 'Missing Values', 1 : '% of Total Values'  })
    
    ## ascending=False : 降序排列列,默认是升序
    #非空部分  根据 缺失概率 逆序排列
    # # 因为第1列缺失值很大,ascending=False代表降序
    #iloc[:,1] != 0的意思是对于下面的表中的第2列(缺失的占比)进行降序,从大到小
    mis_val_table_ren_columns =mis_val_table_ren_columns[
       mis_val_table_ren_columns .iloc[:,1] != 0 ].sort_values(by = '% of Total Values',ascending = False).round(1)
#     mis_val_table_ren_columns = mis_val_table_ren_columns[
#         mis_val_table_ren_columns.iloc[:,1] != 0].sort_values(
#         '% of Total Values', ascending=False).round(1)
    
    # 打印所有列的个数 、 缺失了多少列
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值