1. 程式人生 > 其它 >資料探索性分析案例實現

資料探索性分析案例實現

一、資料描述

對diamonds資料集進行描述,該資料集總共由8個部分十個欄位組成。

1.color:色彩欄位,分為了7個層級,從D到J來表示鑽石顏色層級。

2.clarity:鑽石的純度,主要是表示鑽石內的雜質以及鑽石含量。

3.carat:鑽石的重量單位克拉。

4.cut:鑽石的切割質量。

5.depth:鑽石的全深比。

6.table:鑽石的檯面。

7.price:鑽石的價格。

8.鑽石的大小資料,包括三個方位資料,x:長,單位mm,y:寬,單位mm,z:高,單位mm。

二、問題提出

1.既然要處理資料,我們怎麼匯入資料?

2.匯入資料後如何檢視資料?

3.資料視覺化如何實現?

4.鑽石的各個屬性之間有沒有什麼關聯性?

三、資料預處理

1.資料匯入

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.cm as sns
get_ipython().run_line_magic('matplotlib', 'inline')

df=pd.read_csv(r'diamonds.csv')

2.資料集檢視

print("輸出資料集:")
print(df.head())

3.資料統計

print("資料統計資訊:")
print(df.describe())

四、資料清洗

1.缺失值

df.isnull().sum()

2.資料型別統計

print("資料型別統計:")
print(df.info())

3.處理缺失值

df.dropna(inplace=True)
df.dropna(thresh=2)
df.dropna(how='all')
df.dropna(axis='columns')

五、資料視覺化

1.檢視整體多對關係

import seaborn as sns
sns.pairplot(df)
plt.show()

2.扇形圖

import matplotlib.pyplot as plt
plt.rcParams[
'font.sans-serif'] = ['SimHei'] plt.pie(x=df['clarity'].value_counts(),labels=df['clarity'].value_counts().index,autopct='%.1f%%',) plt.title(u'clarity') plt. show()

3.直方圖

sns.distplot(df['price'],kde=False)

4.折線圖

sns.boxplot(data=df['z'])
plt.show()

5.散點圖

sns.jointplot(x="x", y="y", data=df,color='blue', kind='scatter');
plt.show()

6.箱型圖檢視異常值

sns.boxplot(data=df['z'])
plt.show()

r=[x for i,x in enumerate(df.index) if df.z[i]>10]
print('Remvove row: ',r)
df.drop(r,axis=0,inplace=True) 
sns.boxplot(data=df['z'])
plt.show()

六、總結

1.切割質量越好,鑽石的價格越高。

2.價格與鑽石的長寬深有很強的相關性,而且基本都是正相關。

3.透明度越好的鑽石的單價越高。

4.顏色越好的鑽石的單價越高。