数据科学导论——问题分析与数据处理

这篇博客介绍了数据科学的基础,包括如何使用pandas进行数据过滤以去除非数值类和异常值,以及如何生成展示属性相关性的热力图。通过实例展示了在数据预处理和分析过程中的关键步骤。

第1关:数据过滤

任务描述

本关任务:编写一个能过滤非数值类和含异常值的数据类型的小程序。

相关知识:

为了完成本关任务,你需要掌握如何利用 pandas 库过滤数据。

pandas过滤数据
pandas 是一个强大的分析结构化数据的工具集;它的使用基础是 Numpy (提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

Pandas 中常见的数据结构有两种:

Series:  

构建  Series:ser_obj = pd.Series(range(10));  

由索引和数据组成:索引在左<自动创建的>,数据在右;

获取数据和索引:  ser_obj.index; ser_obj.values;  

预览数据:  ser_obj.head(n);ser_obj.tail(n)
DataFrame:  

获取列数据:  df_obj[col_idx]或df_obj.col_idx;  

增加列数据:  df_obj[new_col_idx] = data;  

删除列:  del df_obj[col_idx];  

按值排序:  sort_values(by = “label_name”)

编程要求

请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,读取数据、过滤非数值类和含异常值的数据并输出过滤的数据。

测试说明

平台会对你编写的代码进行测试:
部分测试输入:
在这里插入图片描述

预期输出:
在这里插入图片描述
Begin–End:

# -*- coding: utf-8 -*-

import pandas as pd
data_path = './step/train.csv'
#-----读取、过滤非数值类数据----#
#********** Begin**********#
data = pd.read_csv(data_path)
predictors = data.describe()

#********** End **********#

# 过滤异常数据
cols_with_no_nans = []
for col in predictors.columns:
       if not data[col].isnull().any():
           cols_with_no_nans.append(col)
print('Number of numerical columns with no nan:',len(cols_with_no_nans))
print(cols_with_no_nans)

第2关:初识数据

任务描述

本关任务:编写一个小程序,通过形成热力图看各属性与价格的相关性。

相关知识:

为了完成本关任务,你需要掌握如何利用 pandas 库过滤数据。

pandas过滤数据
pandas 是一个强大的分析结构化数据的工具集;它的使用基础是 Numpy (提供高性能的矩阵运算);用于数据挖掘和数据分析,同时也提供数据清洗功能。

Pandas 中常见的数据结构有两种:

Series:  

构建  Series:ser_obj = pd.Series(range(10));  

由索引和数据组成:索引在左<自动创建的>,数据在右;

获取数据和索引:  ser_obj.index; ser_obj.values;  

预览数据:  ser_obj.head(n);ser_obj.tail(n)
DataFrame:  

获取列数据:  df_obj[col_idx]或df_obj.col_idx;  

增加列数据:  df_obj[new_col_idx] = data;  

删除列:  del df_obj[col_idx];  

按值排序:  sort_values(by = “label_name”)
Seaborn
  Seaborn 是基于 matplotlib 的图形可视化 python 包,它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。

  Seaborn 是在 matplotlib 的基础上进行了更高级的 API 封装,从而使得作图更加容易,在大多数情况下使用 seaborn 能做出很具有吸引力的图,而使用  matplotlib  就能制作具有更多特色的图。

应该把 Seaborn 视为 matplotlib 的补充,而不是替代物。同时它能高度兼容 numpy 与 pandas 数据结构以及 scipy 与 statsmodels 等统计模式。

编程要求

请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,画出基于属性相关性的热力图,热力图参数 figsize = (15,15) ,cmap=“Blues” ,square = True 。

测试说明

平台会对你编写的代码进行测试:

测试输入:
在这里插入图片描述
预期输出:
在这里插入图片描述
Begin–End:

# -*- coding: utf-8 -*-
import seaborn as sns  
import matplotlib.pyplot as plt  
import pandas as pd
data_path = './step2/train.csv'  
data = pd.read_csv(data_path)  
predictors = data.select_dtypes(exclude=['object'])  
cols_with_no_nans = []  
for col in predictors.columns:  
       if not data[col].isnull().any():  
           cols_with_no_nans.append(col)
data_filtered = data[cols_with_no_nans]  
data_filtered.SalePrice.head(10)  
print (data_filtered[['GrLivArea', 'SalePrice']].corr())  
data_filtered.describe()  
# plot heatmap\n  
#********** Begin **********#  
fig = plt.figure(figsize = (15,15))  
sns.heatmap(data_filtered.corr(),  
            cmap="Blues",  
            square = True)  
#********** End **********#  
plt.savefig("result/result.png")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星晴z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值