Python數(shù)據(jù)分析處理(三)--運(yùn)動員信息的分組與聚合
3.1 數(shù)據(jù)的爬取
代碼:
import pandas as pd
f = open('運(yùn)動員信息表.csv')
data=pd.read_csv(f,skiprows=0,header=0)
print(data)
運(yùn)行結(jié)果:

首先使用pd.read_csv(f,skiprows=0,header=0)進(jìn)行數(shù)據(jù)的讀取,并且將數(shù)據(jù)轉(zhuǎn)換成為dataframe的格式給對象,做初始化,方便后面進(jìn)行數(shù)據(jù)的分析。
3.2統(tǒng)計(jì)男籃、女籃運(yùn)動員的平均年齡、身高、體重
代碼:
sex=data[["年齡(歲)","身高(cm)","體重(kg)"]].groupby(data["性別"]) print(sex.mean())
運(yùn)行結(jié)果:

首先我們先把數(shù)據(jù)提取出來做個分組,先把"年齡(歲)",“身高(cm)”,"體重(kg)"這三行數(shù)據(jù)提取出來再根據(jù)性別進(jìn)行分組。
sex=data[["年齡(歲)","身高(cm)","體重(kg)"]].groupby(data["性別"])
然后再調(diào)用mean()求平均值,求出男籃、女籃運(yùn)動員的平均年齡、身高、體重。
3.3統(tǒng)計(jì)男籃運(yùn)動員年齡、身高、體重的極差值
代碼:
sex=data[["年齡(歲)","身高(cm)","體重(kg)"]].groupby(data["性別"])
basketball_male=dict([x for x in sex])['男']
basketball_male
#求極差
def range_data_group(arr):
return arr.max()-arr.min()
#進(jìn)行每列不同的聚合
basketball_male.agg({
"年齡(歲)":range_data_group,"身高(cm)":range_data_group,"體重(kg)":range_data_group
})
運(yùn)行結(jié)果:

首先提取數(shù)據(jù):
單行循環(huán)提取數(shù)據(jù),dict([x for x in sex])在循環(huán)體內(nèi)的語句只有一行的情況的下,可以簡化for循環(huán)的書寫。定義一個函數(shù)def range_data_group(arr):求極差;
極差的求法:使用最大值減去最小值。就得到極差。
agg()函數(shù):DataFrame.agg(*func*,*axis = 0*,* args*,*** kwargs* )*
func : 函數(shù),函數(shù)名稱,函數(shù)列表,字典{‘行名/列名’,‘函數(shù)名’}
使用指定軸上的一個或多個操作進(jìn)行聚合。
需要注意聚合函數(shù)操作始終是在軸(默認(rèn)是列軸,也可設(shè)置行軸)上執(zhí)行,不同于 numpy聚合函數(shù)
最后我們可以得到三列數(shù)據(jù):分別對應(yīng)"年齡(歲)",“身高(cm)”,“體重(kg)”。
3.4 統(tǒng)計(jì)男籃運(yùn)動員的體質(zhì)指數(shù)
3.4.1添加體重指數(shù)
代碼:
data["體質(zhì)指數(shù)"]=0 data
運(yùn)行結(jié)果:

添加一行體重指數(shù):data[“體質(zhì)指數(shù)”]=0
3.4.2計(jì)算bmi值并添加數(shù)據(jù)
代碼:
# 計(jì)算bmi數(shù)值
def outer(num):
def bminum(sumbim):
weight=data["身高(cm)"]
height=data["體重(kg)"]
sumbim=weight/(height/100)**2
return num+sumbim
return bminum
將該行數(shù)據(jù)添加上去:
代碼:
# 調(diào)用函數(shù) bimdata=data["體質(zhì)指數(shù)"] data["體質(zhì)指數(shù)"]=data[["體質(zhì)指數(shù)"]].apply(outer(bimdata)) data
運(yùn)行結(jié)果:

編寫函數(shù)計(jì)算bmi數(shù)值 outer(num);然后再使用apply的方法將自定義的函數(shù)應(yīng)用到"體質(zhì)指數(shù)"這一列。然后計(jì)算出該列的值之后進(jìn)行賦值。
data[“體質(zhì)指數(shù)”]=data[[“體質(zhì)指數(shù)”]].apply(outer(bimdata))
97622)]
編寫函數(shù)計(jì)算bmi數(shù)值 outer(num) ;然后再使用apply的方法將自定義的函數(shù)應(yīng)用到"體質(zhì)指數(shù)"這一列。然后計(jì)算出該列的值之后進(jìn)行賦值。
data[“體質(zhì)指數(shù)”]=data[[“體質(zhì)指數(shù)”]].apply(outer(bimdata))
到此這篇關(guān)于Python數(shù)據(jù)分析處理 運(yùn)動員信息的分組與聚合的文章就介紹到這了,更多相關(guān)Python數(shù)據(jù)分析處理 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python pandas分組聚合詳細(xì)
- Python Pandas分組聚合的實(shí)現(xiàn)方法
- Python DataFrame.groupby()聚合函數(shù),分組級運(yùn)算
- 一文詳解Python如何優(yōu)雅地對數(shù)據(jù)進(jìn)行分組
- python?DataFrame數(shù)據(jù)分組統(tǒng)計(jì)groupby()函數(shù)的使用
- Python Pandas實(shí)現(xiàn)數(shù)據(jù)分組求平均值并填充nan的示例
- Pandas?Groupby之在Python中匯總、聚合和分組數(shù)據(jù)的示例詳解
相關(guān)文章
python使用wxpy實(shí)現(xiàn)微信消息防撤回腳本
這篇文章主要為大家詳細(xì)介紹了python使用wxpy實(shí)現(xiàn)微信消息防撤回腳本,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
Python實(shí)現(xiàn)將DNA序列存儲為tfr文件并讀取流程介紹
為什么要在實(shí)驗(yàn)過程中存儲文件,因?yàn)橛行┧惴ǖ膬?nèi)容存在一些重復(fù)計(jì)算的步驟,這些步驟往往消耗很大一部分時間,在有大量參數(shù)的情況時,需要在多次不同參數(shù)的情況下重復(fù)試驗(yàn),因此可以考慮將一些不涉及參數(shù)運(yùn)算的部分結(jié)果存入文件中2022-09-09
使用WingPro 7 設(shè)置Python路徑的方法
Python使用稱為Python Path的搜索路徑來查找使用import語句導(dǎo)入代碼的模塊。這篇文章主要介紹了使用WingPro 7 設(shè)置Python路徑的方法,需要的朋友可以參考下2019-07-07
Python線程之同步機(jī)制實(shí)際應(yīng)用場景舉例說明
這篇文章主要給大家分享的是Python線程之同步機(jī)制實(shí)際應(yīng)用場景舉例說明,銀行轉(zhuǎn)賬小栗子供大家參考學(xué)習(xí),希望對你有一定的幫助2022-02-02
淺談Python中re.match()和re.search()的使用及區(qū)別
這篇文章主要介紹了淺談Python中re.match()和re.search()的使用及區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
使用Python和OpenCV實(shí)現(xiàn)動態(tài)背景的畫中畫效果
這篇文章將通過一個詳細(xì)的Python腳本,使用OpenCV庫來為視頻添加動態(tài)背景,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
用Python的Flask框架結(jié)合MySQL寫一個內(nèi)存監(jiān)控程序
這篇文章主要介紹了用Python的Flask框架結(jié)合MySQL些一個內(nèi)存監(jiān)控程序的例子,并且能將結(jié)果作簡單的圖形化顯示,需要的朋友可以參考下2015-11-11
使用python模塊plotdigitizer摳取論文圖片中的數(shù)據(jù)實(shí)例詳解
這篇文章主要介紹了使用python模塊plotdigitizer摳取論文圖片中的數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

