电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

基于Python數據分析之pandas統計分析

瀏覽:7日期:2022-08-04 13:48:54

pandas模塊為我們提供了非常多的描述性統計分析的指標函數,如總和、均值、最小值、最大值等,我們來具體看看這些函數:

1、隨機生成三組數據

import numpy as npimport pandas as pdnp.random.seed(1234)d1 = pd.Series(2*np.random.normal(size = 100)+3)d2 = np.random.f(2,4,size = 100)d3 = np.random.randint(1,100,size = 100)

2、統計分析用到的函數

d1.count() #非空元素計算d1.min() #最小值d1.max() #最大值d1.idxmin() #最小值的位置,類似于R中的which.min函數d1.idxmax() #最大值的位置,類似于R中的which.max函數d1.quantile(0.1) #10%分位數d1.sum() #求和d1.mean() #均值d1.median() #中位數d1.mode() #眾數d1.var() #方差d1.std() #標準差d1.mad() #平均絕對偏差d1.skew() #偏度d1.kurt() #峰度d1.describe() #一次性輸出多個描述性統計指標

必須注意的是,descirbe方法只能針對序列或數據框,一維數組是沒有這個方法的自定義一個函數,將這些統計指標匯總在一起:

def status(x) : return pd.Series([x.count(),x.min(),x.idxmin(),x.quantile(.25),x.median(), x.quantile(.75),x.mean(),x.max(),x.idxmax(),x.mad(),x.var(), x.std(),x.skew(),x.kurt()],index=[’總數’,’最小值’,’最小值位置’,’25%分位數’, ’中位數’,’75%分位數’,’均值’,’最大值’,’最大值位數’,’平均絕對偏差’,’方差’,’標準差’,’偏度’,’峰度’])

執行該函數,查看一下d1數據集的這些統計函數值:

df = pd.DataFrame(status(d1))df

結果:

基于Python數據分析之pandas統計分析

在實際的工作中,我們可能需要處理的是一系列的數值型數據框,如何將這個函數應用到數據框中的每一列呢?可以使用apply函數,這個非常類似于R中的apply的應用方法。 將之前創建的d1,d2,d3數據構建數據框:

df = pd.DataFrame(np.array([d1,d2,d3]).T, columns=[’x1’,’x2’,’x3’])df.head()df.apply(status)

結果:

基于Python數據分析之pandas統計分析

3、加載CSV數據

import numpy as npimport pandas as pdbank = pd.read_csv('D://bank/bank-additional-train.csv')bank.head() #查看前5行

基于Python數據分析之pandas統計分析

描述性統計1:describe()

result = bank[’age’].describe()pd.DataFrame(result ) #格式化成DataFrame

基于Python數據分析之pandas統計分析

描述性統計2:describe(include=[‘number’])

include中填寫的是數據類型,若想查看所有數據的統計數據,則可填寫object,即include=[’object’];若想查看float類型的數據,則為include=[’float’]。

result = bank.describe(include=[’object’])

基于Python數據分析之pandas統計分析

含義:

count:指定字段的非空總數。unique:該字段中保存的值類型數量,比如性別列保存了男、女兩種值,則unique值則為2。top:數量最多的值。freq:數量最多的值的總數。bank.describe(include=[’number’])

基于Python數據分析之pandas統計分析

連續變量的相關系數(corr)

bank.corr()

基于Python數據分析之pandas統計分析

協方差矩陣(cov)

bank.cov()

基于Python數據分析之pandas統計分析

刪除列

bank.drop(’job’, axis=1) #刪除年齡列,axis=1必不可少

排序

bank.sort_values(by=[’job’,’age’]) #根據工作、年齡升序排序bank.sort_values(by=[’job’,’age’], ascending=False) #根據工作、年齡降序排序

多表連接

準備數據:

import numpy as npimport pandas as pdstudent = {’Name’:[’Bob’,’Alice’,’Carol’,’Henry’,’Judy’,’Robert’,’William’], ’Age’:[12,16,13,11,14,15,24], ’Sex’:[’M’,’F’,’M’,’M’,’F’,’M’,’F’]}score = {’Name’:[’Bob’,’Alice’,’Carol’,’Henry’,’William’], ’Score’:[75,35,87,86,57]}df_student = pd.DataFrame(student)df_studentdf_score = pd.DataFrame(score)df_score

student:

基于Python數據分析之pandas統計分析

score:

基于Python數據分析之pandas統計分析

內連接

stu_score1 = pd.merge(df_student, df_score, on=’Name’)stu_score1

注意,默認情況下,merge函數實現的是兩個表之間的內連接,即返回兩張表中共同部分的數據。可以通過how參數設置連接的方式,left為左連接;right為右連接;outer為外連接。

基于Python數據分析之pandas統計分析

左連接

stu_score2 = pd.merge(df_student, df_score, on=’Name’,how=’left’)stu_score2

基于Python數據分析之pandas統計分析

左連接中,沒有Score的學生Score為NaN

缺失值處理

現實生活中的數據是非常雜亂的,其中缺失值也是非常常見的,對于缺失值的存在可能會影響到后期的數據分析或挖掘工作,那么我們該如何處理這些缺失值呢?常用的有三大類方法,即刪除法、填補法和插值法。

刪除法

當數據中的某個變量大部分值都是缺失值,可以考慮刪除改變量;當缺失值是隨機分布的,且缺失的數量并不是很多是,也可以刪除這些缺失的觀測。

替補法

對于連續型變量,如果變量的分布近似或就是正態分布的話,可以用均值替代那些缺失值;如果變量是有偏的,可以使用中位數來代替那些缺失值;對于離散型變量,我們一般用眾數去替換那些存在缺失的觀測。

插補法

插補法是基于蒙特卡洛模擬法,結合線性模型、廣義線性模型、決策樹等方法計算出來的預測值替換缺失值。

此處測試使用上面學生成績數據進行處理

查詢某一字段數據為空的數量

sum(pd.isnull(stu_score2[’Score’]))結果:2

直接刪除缺失值

stu_score2.dropna()

刪除前:

基于Python數據分析之pandas統計分析

刪除后:

基于Python數據分析之pandas統計分析

默認情況下,dropna會刪除任何含有缺失值的行

刪除所有行為缺失值的數據

import numpy as npimport pandas as pddf = pd.DataFrame([[1,2,3],[3,4,np.nan], [12,23,43],[55,np.nan,10], [np.nan,np.nan,np.nan],[np.nan,1,2]], columns=[’a1’,’a2’,’a3’])

基于Python數據分析之pandas統計分析

df.dropna() #該操作會刪除所有有缺失值的行數據

基于Python數據分析之pandas統計分析

df.dropna(how=’all’) #該操作僅會刪除所有列均為缺失值的行數據

基于Python數據分析之pandas統計分析

填充數據

使用一個常量來填補缺失值,可以使用fillna函數實現簡單的填補工作:

1、用0填補所有缺失值

df.fillna(0)

基于Python數據分析之pandas統計分析

2、采用前項填充或后向填充

df.fillna(method=’ffill’) #用前一個值填充

基于Python數據分析之pandas統計分析

df.fillna(method=’bfill’) #用后一個值填充

基于Python數據分析之pandas統計分析

3、使用常量填充不同的列

df.fillna({’a1’:100,’a2’:200,’a3’:300})

基于Python數據分析之pandas統計分析

4、用均值或中位數填充各自的列

a1_median = df[’a1’].median() #計算a1列的中位數a1_median=7.5a2_mean = df[’a2’].mean() #計算a2列的均值a2_mean = 7.5a3_mean = df[’a3’].mean() #計算a3列的均值a3_mean = 14.5df.fillna({’a1’:a1_median,’a2’:a2_mean,’a3’:a3_mean}) #填充值

基于Python數據分析之pandas統計分析

很顯然,在使用填充法時,相對于常數填充或前項、后項填充,使用各列的眾數、均值或中位數填充要更加合理一點,這也是工作中常用的一個快捷手段。

數據打亂(shuffle)

實際工作中,經常會碰到多個DataFrame合并后希望將數據進行打亂。在pandas中有sample函數可以實現這個操作。

df = df.sample(frac=1)

這樣對可以對df進行shuffle。其中參數frac是要返回的比例,比如df中有10行數據,我只想返回其中的30%,那么frac=0.3。有時候,我們可能需要打混后數據集的index(索引)還是按照正常的排序。我們只需要這樣操作

df = df.sample(frac=1).reset_index(drop=True)

以上這篇基于Python數據分析之pandas統計分析就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 香港新时代国际美容美发化妆美甲培训学校-26年培训经验,值得信赖! | LNG鹤管_内浮盘价格,上装鹤管,装车撬厂家-连云港赛威特机械 | 谈股票-今日股票行情走势分析-牛股推荐排行榜 | 在线钠离子分析仪-硅酸根离子浓度测定仪-油液水分测定仪价格-北京时代新维测控设备有限公司 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 包装机_厂家_价格-山东包装机有限公司| 热风机_工业热风机生产厂家上海冠顶公司提供专业热风机图片价格实惠 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 电动高尔夫球车|电动观光车|电动巡逻车|电动越野车厂家-绿友机械集团股份有限公司 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 爆炸冲击传感器-无线遥测传感器-航天星百科| 中药超微粉碎机(中药细胞级微粉碎)-百科 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 国产离子色谱仪,红外分光测油仪,自动烟尘烟气测试仪-青岛埃仑通用科技有限公司 | 对照品_中药对照品_标准品_对照药材_「格利普」高纯中药标准品厂家-成都格利普生物科技有限公司 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 北京工业设计公司-产品外观设计-产品设计公司-千策良品工业设计 北京翻译公司-专业合同翻译-医学标书翻译收费标准-慕迪灵 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 数控走心机-双主轴走心机厂家-南京建克| 压滤机-洗沙泥浆处理-压泥机-山东创新华一环境工程有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 间甲酚,间甲酚厂家-山东祥东新材料| 溶氧传感器-pH传感器|哈美顿(hamilton) | 查分易-成绩发送平台官网| 电磁流量计厂家_涡街流量计厂家_热式气体流量计-青天伟业仪器仪表有限公司 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 中原网视台| 上海办公室装修,办公楼装修设计,办公空间设计,企业展厅设计_写艺装饰公司 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 组织研磨机-高通量组织研磨仪-实验室多样品组织研磨机-东方天净 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 河南中专学校|职高|技校招生-河南中职中专网 | 冷却塔降噪隔音_冷却塔噪声治理_冷却塔噪音处理厂家-广东康明冷却塔降噪厂家 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 北京中航时代-耐电压击穿试验仪厂家-电压击穿试验机 |