Python 使用pandas實(shí)現(xiàn)查詢和統(tǒng)計(jì)示例詳解
前言
在使用 Pandas
進(jìn)行數(shù)據(jù)分析時(shí),我們需要經(jīng)常進(jìn)行查詢和統(tǒng)計(jì)分析。
但是Pandas
是如何進(jìn)行查詢和統(tǒng)計(jì)分析得嘞, let's go :
數(shù)據(jù)篩選查詢
通過列名索引篩選數(shù)據(jù):
import pandas as pd data = {'name': ['Tom', 'Jerry', 'Lucy', 'Amy'], 'age': [18, 19, 20, 21], 'gender': ['M', 'M', 'F', 'F']} df = pd.DataFrame(data) # 選取 'name' 屬性 df['name'] # 選取 'age' 和 'gender' 屬性 df[['age', 'gender']]
通過位置索引篩選數(shù)據(jù):
# 通過位置索引選取第一行數(shù)據(jù) df.iloc[0] # 通過位置索引選取第一行和第二行數(shù)據(jù) df.iloc[0:2]
通過布爾索引篩選數(shù)據(jù):
# 選取年齡大于等于 20 的記錄 df[df['age'] >= 20] # 選取性別為女的記錄 df[df['gender'] == 'F']
數(shù)據(jù)統(tǒng)計(jì)分析
Pandas
提供豐富的統(tǒng)計(jì)函數(shù),可以方便地進(jìn)行數(shù)據(jù)分析。
描述性統(tǒng)計(jì)分析:
# 統(tǒng)計(jì)數(shù)值型數(shù)據(jù)的基本描述性統(tǒng)計(jì)信息 df.describe() # 統(tǒng)計(jì)各屬性的非空值數(shù)量 df.count() # 統(tǒng)計(jì)各屬性的平均值 df.mean() # 統(tǒng)計(jì)各屬性的方差 df.var() # 統(tǒng)計(jì)各屬性的標(biāo)準(zhǔn)差 df.std()
分組統(tǒng)計(jì)分析:
# 按照性別分組,統(tǒng)計(jì)年齡均值 df.groupby('gender')['age'].mean() # 按照性別和年齡分組,統(tǒng)計(jì)人數(shù) df.groupby(['gender', 'age'])['name'].count()
交叉表分析:
# 構(gòu)造一個(gè)交叉表,統(tǒng)計(jì)不同性別和年齡的人數(shù) pd.crosstab(df['gender'], df['age'])
數(shù)據(jù)排序
按照某列數(shù)據(jù)進(jìn)行升序排列:
df.sort_values(by='age')
按照某列數(shù)據(jù)進(jìn)行降序排列:
df.sort_values(by='age', ascending=False)
數(shù)據(jù)聚合
對(duì)整個(gè) DataFrame 進(jìn)行聚合操作:
# 聚合函數(shù):求和、均值、中位數(shù)、最大值、最小值 df.aggregate([sum, 'mean', 'median', max, min])
對(duì)某列數(shù)據(jù)進(jìn)行聚合操作:
# 統(tǒng)計(jì)年齡平均值 df['age'].mean() # 統(tǒng)計(jì)年齡總和 df['age'].sum() # 統(tǒng)計(jì)年齡最大值 df['age'].max()
處理缺失數(shù)據(jù)
判斷數(shù)據(jù)是否為缺失值:
# 返回一個(gè)布爾型 DataFrame,表明各元素是否為缺失值 df.isnull()
刪除缺失值所在的行或列:
# 刪除所有含有缺失值的行 df.dropna() # 刪除所有含有缺失值的列 df.dropna(axis=1)
用指定值填充缺失值:
# 將缺失值使用 0 填充 df.fillna(0)
數(shù)據(jù)去重
對(duì) DataFrame 去重:
# 根據(jù)所有列值的重復(fù)性進(jìn)行去重 df.drop_duplicates() # 根據(jù)指定列值的重復(fù)性進(jìn)行去重 df.drop_duplicates(subset=['name', 'age'])
對(duì) Series 去重:
# 對(duì) 'name' 列進(jìn)行去重 df['name'].drop_duplicates()
數(shù)據(jù)合并
橫向(按列)合并 DataFrame:
# 創(chuàng)建一個(gè)新的 DataFrame other_data = {'name': ['Tom', 'Jerry', 'Lucy', 'Amy'], 'score': [80, 90, 85, 95]} other_df = pd.DataFrame(other_data) # 將兩個(gè) DataFrame 在列上合并 pd.concat([df, other_df], axis=1)
縱向(按行)合并 DataFrame:
# 創(chuàng)建一個(gè)新的 DataFrame other_data = {'name': ['Kate', 'Jack'], 'age': [19, 20], 'gender': ['F', 'M']} other_df = pd.DataFrame(other_data) # 將兩個(gè) DataFrame 在行上合并 pd.concat([df, other_df], axis=0)
數(shù)據(jù)透視表
創(chuàng)建數(shù)據(jù)透視表:
# 統(tǒng)計(jì)不同性別和年齡的人數(shù),以 'gender' 為行、'age' 為列,'name' 計(jì)數(shù) pd.pivot_table(df, values='name', index='gender', columns='age', aggfunc='count')
以上就是Python 使用pandas實(shí)現(xiàn)查詢和統(tǒng)計(jì)示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Python pandas查詢統(tǒng)計(jì)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Matlab、Python為工具解析數(shù)據(jù)可視化之美
下面介紹一些數(shù)據(jù)可視化的作品(包含部分代碼),主要是地學(xué)領(lǐng)域,可遷移至其他學(xué)科,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-11-11python創(chuàng)建字典(dict)的幾種方法小結(jié)(含代碼示例)
字典(Dictionary)是Python中一種非常靈活的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對(duì)(key-value pairs),在Python中創(chuàng)建字典有多種方法,每種方法都有其特定的使用場(chǎng)景和優(yōu)勢(shì),本文將詳細(xì)介紹Python中創(chuàng)建字典的幾種常見方法,需要的朋友可以參考下2024-09-09python sorted函數(shù)原理解析及練習(xí)
這篇文章主要介紹了python sorted函數(shù)原理解析及練習(xí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02pandas調(diào)整列的順序以及添加列的實(shí)現(xiàn)
這篇文章主要介紹了pandas調(diào)整列的順序以及添加列的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python虛擬環(huán)境的創(chuàng)建和使用詳解
這篇文章主要給大家介紹了關(guān)于Python虛擬環(huán)境的創(chuàng)建和使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Python實(shí)現(xiàn)語音轉(zhuǎn)文本的兩種方法
這篇文章主要給大家介紹了關(guān)于Python實(shí)現(xiàn)語音轉(zhuǎn)文本的兩種方法,Python提供了許多工具和庫來進(jìn)行這些任務(wù),本文通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06Python基于SciPy庫實(shí)現(xiàn)統(tǒng)計(jì)分析與建模
SciPy是一個(gè)強(qiáng)大的Python庫,提供了豐富的科學(xué)計(jì)算和數(shù)據(jù)分析工具,本文我們將探討如何使用Python和SciPy庫進(jìn)行統(tǒng)計(jì)分析和建模,感興趣的可以學(xué)習(xí)一下2023-06-06Python實(shí)現(xiàn)周日歷與時(shí)間相互轉(zhuǎn)換
周日歷是日常生活中不常用到的歷法系統(tǒng),一般用于政府、商務(wù)的會(huì)計(jì)年度或者學(xué)校教學(xué)日歷中。本文為大家介紹了如何利用Python語言實(shí)現(xiàn)周日歷與時(shí)間相互轉(zhuǎn)換,感興趣的可以學(xué)習(xí)一下2022-07-07