pandas内置数据集_Pandas数据分析实战01——Abalone Data Set(鲍鱼数据集)
> 打算從基礎開始學習數據分析,給自己一個整理內容和學習消化的時間,所以,這也將成為我的學習筆記。
1. 數據描述
原始數據集包括六個屬性:Gender,Length,Diameter,Height,Weight,Rings:Gender?:M (male), F (female), I (infant)
Length:最長外殼尺寸(毫米)
Diameter:垂直于長度的直徑(毫米)
Height:帶殼肉的高度(毫米)
Weight:整只鮑魚的重量(克)
Rings:確定鮑魚的實際年齡,有點像估計一棵樹的年齡。 隨著鮑魚的生長,在鮑魚殼中形成環,通常以每年一環的速度形成。
2. 數據讀取
2.1 導入庫
import pandas as pd
2.2 讀取文件
data = pd.read_csv("abalone.csv")
2.3 查看數據表信息
先來一波兒基礎操作,熱熱身~
data.columns ? ? ? ? ? ? ? ? ? ? ? ? ?# 查看數據列名
data.shape? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 查看數據框中有多少個觀測值
data.head(4) ? ? ? ? ? ? ? ? ? ? ?# 打印數據的前四行
data.head(4)['Rings'] ? ? ? ? ? ?# 打印前四行中Rings的值
data.tail(3)? ? ? ? ? ? ? ? ? ? ? ? ? # 提取數據集的最后三行
data.tail(3)['Weight']? ? ? ? ? ? ?# 輸出最后三行鮑魚的重量
data.loc[577]['Diameter']? ? ??# 輸出第577行的直徑值
data.mean()['Height']? ? ? ? ? ?# 輸出高度列的平均值
什么(O_o)?? 沒難度?那是因為我不想掉頭發!
#?提取 gender 為M并且 weight 值低于0.75的數據框的行子集
subset=data[(data['Gender']=='M') & (data['Weight']<0.75)]
# 輸出此子集中 diameter 的平均值
subset.mean()['Diameter']
# 輸出年齡等于18的鮑魚的最小長度
data.loc[data["Rings"]==18,"Length"].min()
3. 數據呈現
3.1 鮑魚任意兩個屬性之間的關系可視化:
==交叉表與熱圖結合==(個人覺得是數據分析界的炸雞和啤酒)
熱圖的色彩變化豐富多樣、信息表達生動飽滿,搭配交叉表的使用,是一種非常不錯的可視化手段,被用于各種大數據分析場景,我在這里嘗試一下:
import seaborn as sns? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 導入seaborn繪圖模塊
tab = pd.crosstab(data['Height'],data['Gender'])? ? ?# 做Height列和Gender列的交叉表
sns.heatmap(tab)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 對交叉表進行熱圖呈現
輸出結果如下圖:
3.2 鮑魚三個屬性之間的關系可視化:
sns.scatterplot(data=data,x='Length',y='Weight',hue='Gender',s=300)
plt.legend(loc='upper left')
輸出結果如圖:一般很難讀懂按這種方式可視化的多種特征的關系信息,下一次,會有更好地方式,值得期待。
4. 數據分析
?鮑魚的體重與它們有多少個環有關嗎?
==劃重點==開始分析之前,先把數據清洗一下:
data.describe()
運行之后,是這醬紫的......
我們囧囧有神.....哦不.....是炯炯有神的兩只“照妖鏡”發現一只千年鮑魚精,呔!妖精,哪里逃,快還我真實數據~
于是,便有了下面一場"惡戰"(其實也就一行代碼,看來這只鮑魚精道行不夠).........
data.loc[data.Rings==1500,'Rings']=15
言歸正傳,數據集中難免存在數據錯誤,根據數據集中的其他相關數據,我將其修正為了15。
回到問題:鮑魚的體重和環之間是否存在聯系?
==解決方案1==
import? ?matplotlib.pyplot? ?as? ?plt
plt.scatter ( data['Rings'] , data [ 'Weight' ]?)
plt.show( )
輸出結果如下圖:從散點圖中可以看出,鮑魚的環和體重不存在明顯的相關關系。
==解決方案2==
data.corr()#?對數據集進行相關性分析
輸出結果如下:可見鮑魚的weight和rings并沒有很強的關聯。
==解決方案3==
data_mean = data.groupby( 'Rings' ).mean( ) ?# 求所有鮑魚的環的平均值
plt.plot ( data_mean [ 'Weight' ] )? ? ? ? ? ? ? ? ? ? ??# 繪制折線圖
輸出結果如下:
奉上一張思維導圖
> 這篇筆記一定還有很多不完善的地方,希望朋友們多多提出不足,大家一起交流,期待!
總結
以上是生活随笔為你收集整理的pandas内置数据集_Pandas数据分析实战01——Abalone Data Set(鲍鱼数据集)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pandas数据分析实战01--Abal
- 下一篇: Nature:鲍哲南团队研发新型可穿戴显