pandas篇之pandas常用函数应用

您所在的位置:网站首页 python条件函数操作dataframe pandas篇之pandas常用函数应用

pandas篇之pandas常用函数应用

2023-03-09 02:19| 来源: 网络整理| 查看: 265

简述

pandas是python最为流行的科学库之一,它为我们提供了丰富的功能,借助这个宝可梦口袋,我们可以实现复杂的分组统计,链式处理等功能。这里我会用篇幅较大的内容介绍pandas常见函数的使用语法并配合例子,供读者使用。

正文 補充的知識點 axis

axis为0纵轴开始读取,axis为1表示从横轴开始读取

concat函数

concat函數是一個拼接函數,可以實現pandas的dataframe或者series的拼接效果,可选参数如下

import pandas as pd io = pd.io.excel.ExcelFile("2023年02月CC.CF.CH廠電話號碼一覽表.xls") data =pd.read_excel(io, sheet_name="CA") data = data[(data.職位!="N/A")&(data.姓名!="N/A")&(data.姓名!="NaN")] dtName = data["姓名"] dtPhone = data["CDMA手機"] dtName01 = dtName[:4] dtName02 = dtName[4:7] pices = [dtName01,dtName02] #使用key拼接 data = pd.concat(pices,keys=["a","b"]) print(data) #移除原來的索引,ignore_index=True,key會失效 #axis为0表示纵向拼接 data = pd.concat(pices,keys=["a","b"],ignore_index=True,axis=0) print(data.shape) #移除原來的索引,ignore_index=True,key会生效效 #axis表示横行拼接 data = pd.concat(pices,keys=["a","b"],ignore_index=False,axis=1) print(data) Append

append函数可以简单实现数据拼接的效果,相比concat效果较为单一

data = dtName01.append(dtName02) agg

agg函数是常用的聚合函数,常与下面的groupby函数搭配使用,使用agg函数可以非常方便地实现对聚合后的数据进行sum,max,min,mean,std等统计

import pandas as pd data = pd.read_csv("test.csv") data = data.iloc[:,1:6] dt1 = data.groupby("MSZoning").agg({'LotArea':['sum','max','min','mean','std'],'LotFrontage':['min']}) print(dt1) data.groupby("MSZoning").agg({'LotArea':['sum','max','min']}) #重命名新的列名 dt2 = data.groupby("MSZoning").agg(房屋大小=('LotArea',max)) print(dt2) groupby

分组函数,可以实现数据分组聚合统计(本质是将dataframe按条件切分为多个小块),将数据全部统计到一个部分,支持多个聚合条件

import pandas as pd data = pd.read_csv("test.csv") data = data.iloc[:,1:6] print(data) #分组并统计,按分析MSZoning,Street两列聚合分析 dt1 = data.groupby(["MSZoning","Street"]) print(dt1) pipe

pipe是pandas常用的管道函数,可以非常便捷地实现链式编程,允许传递一个函数和零或多个参数,经过函数处理后的任意类型和形式的数据。

import pandas as pd data = pd.read_csv("test.csv") data = data.iloc[:,1:6] print(data) #所有元素加n def incr(df,n): df2=df.apply(lambda x: x+n if x.name=="LotArea" else x,axis=0) return df2 def decl(df,n): df2=df.apply(lambda x: x-n if x.name=="LotArea" else x,axis=0) return df2 #加10再减10 data = data.query("LotArea>100").pipe(incr,10).pipe(decl,10) print(data.head())

assign

assign函数可以实现在原数据不变的情况下,新增一或者多列

import pandas as pd data = pd.read_csv("test.csv") data = data.iloc[:,1:6] data = data.assign(sale_num = (data["LotArea"]*20-data["LotArea"]*10)) print(data) 总结

pandas是一个非常丰富的科学库,这里只是简单介绍一下,如果有兴趣的话,后续可以去官网学习一下。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3