赞
踩
house = pd.read.csv("./data/boston.csv").head()
house.shape
house.columns
house.describe()
/ house.info()
null.info()
null.isnull().sum()
missing = null.isnull().sum()
missing = missing[missing > 0] # 筛选出有缺失值(大于0)的特征
missing.sort_values(inplace = True) # 排序
missing.plot.bar() # 调用pandas内置的条形图绘制
热力图 sns.heatmap(null.isnull())
热力图可以帮助看出缺失值的位置,如果有些样本出现大量特征缺失的情况,在样本足够大的情况下也可以考虑删除
A = []
for col in null.columns:
A.append((col,
null[col].isnull().sum() * 100 / null.shape[0]))
pd.DataFrame(A, columns=['Features', 'missing rate'])
df.nunique()
def df_stats(df):
'''
统计该df的缺失值,比例以及唯一值个数.
'''
L = []
for col in df.columns:
L.append((col,
df[col].isnull().sum(),
df[col].isnull().sum() * 100 / df.shape[0],
df[col].nunique()))
res = pd.DataFrame(L, columns = ['Feature',
'missing num',
'missing rate',
'unique num'])
return res
null = null.fillna(null.mean()) # 用均值填充
这是比较简单粗暴的方式,之后会细讲缺失值处理方式
可视化查看 sns.heatmap(null.isnull())
此时已没有缺失值
house["MEDV"].nunique()
查看标签的取值:因为取值个数比较多,可以大致判断本次任务属于回归型任务。 但这并非判断标准,只是一个判断的参考,主要还是分析题目的任务需求
house["MEDV"].describe()
打印标签的统计信息:
plt.figure()
sns.distplot(house["MEDV"],
bins=100,#柱子的个数
hist=True,#是否绘制直方图
kde=True,#是否绘制密度图
rug=True,#数据分布标尺
color='r',#颜色
# vertical=False,#是否水平绘制
# norm_hist=False,#标准化,kde为True时自动标准化
axlabel=None,#x轴标注
label=None,#图例标签,通过plt.legend()显示
ax=None,
)
plt.figure()
sns.distplot(np.log(house["MEDV"]),
bins=100,#柱子的个数
hist=True,#是否绘制直方图
kde=True,#是否绘制密度图
rug=True,#数据分布标尺
color='r',#颜色
# vertical=False,#是否水平绘制
# norm_hist=False,#标准化,kde为True时自动标准化
axlabel=None,#x轴标注
label=None,#图例标签,通过plt.legend()显示
ax=None,
)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。