第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")


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

被折叠的 条评论
为什么被折叠?



