日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pandas数据分析实战01--Abalone Data Set(鲍鱼数据集)

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pandas数据分析实战01--Abalone Data Set(鲍鱼数据集) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Pandas數據分析實戰01

    • 1. 數據描述
    • 2. 數據讀取
    • 3. 數據呈現
    • 4. 數據分析

打算從基礎開始學習數據分析,給自己一個整理內容和學習消化的時間,所以,這也將成為我的學習筆記。

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()

    運行之后,是這醬紫的…

    LengthDiameterHeightWeightRings
    count1000.0000001000.0000001000.0000001000.0000001000.000000
    mean0.5227600.4059550.1411000.82554011.318000
    std0.1200640.0988320.0570640.49038047.227697
    min0.0750000.0550000.0000000.0020001.000000
    25%0.4500000.3450000.1150000.4388758.000000
    50%0.5450000.4200000.1450000.8010009.000000
    75%0.6150000.4800000.1650001.14625011.000000
    max0.8150000.6500001.1300002.5550001500.000000


    我們囧囧有神…哦不…是炯炯有神的兩只“照妖鏡”發現一只千年鮑魚精,呔!妖精,哪里逃,快還我真實數據~
    于是,便有了下面一場"惡戰"(其實也就一行代碼,看來這只鮑魚精道行不夠)…
    .

    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并沒有很強的關聯.

    LengthDiameterHeightWeightRings
    Length1.0000000.9874790.5986160.9208610.555995
    Diameter0.9874791.0000000.6020350.9236610.575281
    Height0.5986160.6020351.0000000.5853690.388355
    Weight0.9208610.9236610.5853691.0000000.532438
    Rings0.5559950.5752810.3883550.5324381.000000

    解決方案3

    data_mean=data.groupby('Rings').mean() # 求所有鮑魚的環的平均值 plt.plot(data_mean['Weight']) # 繪制折線圖

    輸出結果如下:

    奉上一張思維導圖

    這篇筆記一定還有很多不完善的地方,希望朋友們多多提出不足,大家一起交流,期待!
    下一次的筆記:

    • 把所有數據分析可能用到的模塊函數進行總結

    總結

    以上是生活随笔為你收集整理的Pandas数据分析实战01--Abalone Data Set(鲍鱼数据集)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。