找回密码
 会员注册
查看: 21|回复: 0

Python酷库之旅-第三方库Pandas(108)

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
70589
发表于 2024-9-10 04:16:59 | 显示全部楼层 |阅读模式
目录一、用法精讲471、pandas.DataFrame.map方法471-1、语法471-2、参数471-3、功能471-4、返回值471-5、说明471-6、用法471-6-1、数据准备471-6-2、代码示例471-6-3、结果输出472、pandas.DataFrame.pipe方法472-1、语法472-2、参数472-3、功能472-4、返回值472-5、说明472-6、用法472-6-1、数据准备472-6-2、代码示例472-6-3、结果输出473、pandas.DataFrame.agg方法473-1、语法473-2、参数473-3、功能473-4、返回值473-5、说明473-6、用法473-6-1、数据准备473-6-2、代码示例473-6-3、结果输出474、pandas.DataFrame.aggregate方法474-1、语法474-2、参数474-3、功能474-4、返回值474-5、说明474-6、用法474-6-1、数据准备474-6-2、代码示例474-6-3、结果输出475、pandas.DataFrame.transform方法475-1、语法475-2、参数475-3、功能475-4、返回值475-5、说明475-6、用法475-6-1、数据准备475-6-2、代码示例475-6-3、结果输出二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲471、pandas.DataFrame.map方法471-1、语法#471、pandas.DataFrame.map方法pandas.DataFrame.map(func,na_action=None,**kwargs)ApplyafunctiontoaDataframeelementwise.Newinversion2.1.0ataFrame.applymapwasdeprecatedandrenamedtoDataFrame.map.ThismethodappliesafunctionthatacceptsandreturnsascalartoeveryelementofaDataFrame.Parameters:funccallablePythonfunction,returnsasinglevaluefromasinglevalue.na_action{None,‘ignore’},defaultNoneIf‘ignore’,propagateNaNvalues,withoutpassingthemtofunc.**kwargsAdditionalkeywordargumentstopassaskeywordsargumentstofunc.ReturnsataFrameTransformedDataFrame.471-2、参数471-2-1、func(必须):应用于DataFrame中每个元素的函数,可以是一个函数名,一个字典(用于映射值)或一个Series(用于将索引对齐后赋值)。471-2-2、na_action(可选,默认值为None):指定如何处理缺失值(NaN),如果设为'ignore',则缺失值会被原样返回,不会传递给函数func,默认为None,这时缺失值会传递给func。471-2-3、**kwargs(可选):其他关键字参数,将传递给func。471-3、功能        用于将一个函数应用到数据框中的每个元素,进行数据清洗、转换、生成新列等操作,如果使用字典或Series作为映射,则可以轻松地替换DataFrame中的值。471-4、返回值        返回一个DataFrame,其中每个元素都是应用func后的结果,如果na_action设置为'ignore',则对应的NaN值将保持不变。471-5、说明    无471-6、用法471-6-1、数据准备无471-6-2、代码示例#471、pandas.DataFrame.map方法importpandasaspd#创建一个示例DataFramedata={'A':[1,2,None,4],'B':[5,6,7,8]}df=pd.DataFrame(data)#使用map方法将每个元素加倍result=df.map(lambdax:x*2)print(result)471-6-3、结果输出#471、pandas.DataFrame.map方法#AB#02.010#14.012#2NaN14#38.016472、pandas.DataFrame.pipe方法472-1、语法#472、pandas.DataFrame.pipe方法pandas.DataFrame.pipe(func,*args,**kwargs)ApplychainablefunctionsthatexpectSeriesorDataFrames.Parameters:funcfunctionFunctiontoapplytotheSeries/DataFrame.args,andkwargsarepassedintofunc.Alternativelya(callable,data_keyword)tuplewheredata_keywordisastringindicatingthekeywordofcallablethatexpectstheSeries/DataFrame.*argsiterable,optionalPositionalargumentspassedintofunc.**kwargsmapping,optionalAdictionaryofkeywordargumentspassedintofunc.Returns:thereturntypeoffunc.472-2、参数472-2-1、func(必须):一个接受DataFrame作为第一个参数的函数,该函数可以对DataFrame进行任何操作并返回一个DataFrame。472-2-2、*args(可选):元组,传递给func的额外位置参数。472-2-3、**kwargs(可选):传递给func的额外关键字参数。472-3、功能        用于将DataFrame传递给一个函数(或方法),从而实现自定义的数据处理流水线,该方法非常有用,因为它可以帮助你将多个操作链式连接起来,使代码更加清晰易读。472-4、返回值        返回值是func处理后的DataFrame或者其他类型的结果,具体取决于函数的实现。472-5、说明    无472-6、用法472-6-1、数据准备无472-6-2、代码示例#472、pandas.DataFrame.pipe方法importpandasaspd#创建一个示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#定义一个自定义函数defadd_columns(dataframe,col1,col2):dataframe['C']=dataframe[col1]+dataframe[col2]returndataframe#使用pipe方法将DataFrame传递给自定义函数result=df.pipe(add_columns,'A','B')print(result)472-6-3、结果输出#472、pandas.DataFrame.pipe方法#ABC#0145#1257#2369473、pandas.DataFrame.agg方法473-1、语法#473、pandas.DataFrame.agg方法pandas.DataFrame.agg(func=None,axis=0,*args,**kwargs)Aggregateusingoneormoreoperationsoverthespecifiedaxis.Parameters:funcfunction,str,listordictFunctiontouseforaggregatingthedata.Ifafunction,musteitherworkwhenpassedaDataFrameorwhenpassedtoDataFrame.apply.Acceptedcombinationsare:functionstringfunctionnamelistoffunctionsand/orfunctionnames,e.g.[np.sum,'mean']dictofaxislabels->functions,functionnamesorlistofsuch.axis{0or‘index’,1or‘columns’},default0If0or‘index’:applyfunctiontoeachcolumn.If1or‘columns’:applyfunctiontoeachrow.*argsPositionalargumentstopasstofunc.**kwargsKeywordargumentstopasstofunc.Returns:scalar,SeriesorDataFrameThereturncanbe:scalar:whenSeries.aggiscalledwithsinglefunctionSeries:whenDataFrame.aggiscalledwithasinglefunctionDataFrame:whenDataFrame.aggiscalledwithseveralfunctions.473-2、参数473-2-1、func(可选,默认值为None):单个函数、可调用对象、函数的列表、字典等,要应用于数据的聚合函数,可以是字符串(如'sum','mean','max','min'等),也可以是自定义函数,可以传递一个函数列表以应用多个聚合函数。473-2-2、axis(可选,默认值为0):{0或'index',1或'columns'},选择聚合的方向,0表示对列进行聚合(即按行聚合),1表示对行进行聚合(即按列聚合)。473-2-3、*args(可选):元组,传递给聚合函数的额外位置参数。473-2-4、**kwargs(可选):传递给聚合函数的额外关键字参数。473-3、功能        用于对DataFrame的行或列进行聚合操作,它允许你应用一个或多个函数,对数据进行汇总,从而获得更高层次的视图,该方法特别有用于数据分析中的统计计算。473-4、返回值        返回一个Series或DataFrame,具体取决于参数的设置和所应用的函数。473-5、说明    无473-6、用法473-6-1、数据准备无473-6-2、代码示例#473、pandas.DataFrame.agg方法#473-1、单个聚合函数importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#对每一列应用sum聚合函数result=df.agg('sum')print(result)#473-2、多个聚合函数importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#对每一列应用多个聚合函数result=df.agg(['sum','mean'])print(result)#473-3、按行聚合importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#对每一行应用聚合函数result=df.agg('sum',axis=1)print(result)#473-4、应用自定义函数importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#自定义聚合函数defcustom_func(x):returnx.max()-x.min()#应用自定义函数result=df.agg(custom_func)print(result)473-6-3、结果输出#473、pandas.DataFrame.agg方法#473-1、单个聚合函数#A6#B15#dtype:int64#473-2、多个聚合函数#AB#sum6.015.0#mean2.05.0#473-3、按行聚合#05#17#29#dtype:int64#473-4、应用自定义函数#A2#B2#dtype:int64474、pandas.DataFrame.aggregate方法474-1、语法#474、pandas.DataFrame.aggregate方法pandas.DataFrame.aggregate(func=None,axis=0,*args,**kwargs)Aggregateusingoneormoreoperationsoverthespecifiedaxis.Parameters:funcfunction,str,listordictFunctiontouseforaggregatingthedata.Ifafunction,musteitherworkwhenpassedaDataFrameorwhenpassedtoDataFrame.apply.Acceptedcombinationsare:functionstringfunctionnamelistoffunctionsand/orfunctionnames,e.g.[np.sum,'mean']dictofaxislabels->functions,functionnamesorlistofsuch.axis{0or‘index’,1or‘columns’},default0If0or‘index’:applyfunctiontoeachcolumn.If1or‘columns’:applyfunctiontoeachrow.*argsPositionalargumentstopasstofunc.**kwargsKeywordargumentstopasstofunc.Returns:scalar,SeriesorDataFrameThereturncanbe:scalar:whenSeries.aggiscalledwithsinglefunctionSeries:whenDataFrame.aggiscalledwithasinglefunctionDataFrame:whenDataFrame.aggiscalledwithseveralfunctions474-2、参数474-2-1、func(可选,默认值为None):单个函数、可调用对象、函数的列表、字典等,要应用于数据的聚合函数,可以是字符串(如'sum','mean','max','min'等),也可以是自定义函数,可以传递一个函数列表以应用多个聚合函数。474-2-2、axis(可选,默认值为0):{0或'index',1或'columns'},选择聚合的方向,0表示对列进行聚合(即按行聚合),1表示对行进行聚合(即按列聚合)。474-2-3、*args(可选):元组,传递给聚合函数的额外位置参数。474-2-4、**kwargs(可选):传递给聚合函数的额外关键字参数。474-3、功能        与agg方法的功能是相同的,主要用于对DataFrame的数据进行聚合计算,它允许用户通过一个或多个聚合函数来汇总数据,以便进行更深入的分析。474-4、返回值        返回一个Series或DataFrame,具体取决于所应用的函数以及输入的DataFrame的结构。474-5、说明    无474-6、用法474-6-1、数据准备无474-6-2、代码示例#474、pandas.DataFrame.agg方法#474-1、单个聚合函数importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#对每一列应用sum聚合函数result=df.aggregate('sum')print(result)#474-2、多个聚合函数importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#对每一列应用多个聚合函数result=df.aggregate(['sum','mean'])print(result)#474-3、按行聚合importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#对每一行应用聚合函数result=df.aggregate('sum',axis=1)print(result)#474-4、应用自定义函数importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#自定义聚合函数defcustom_func(x):returnx.max()-x.min()#应用自定义函数result=df.aggregate(custom_func)print(result)#474-5、使用字典指定不同聚合函数importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#使用字典对每一列指定不同的聚合函数result=df.aggregate({'A':'sum','B':'mean'})print(result)474-6-3、结果输出#474、pandas.DataFrame.agg方法#474-1、单个聚合函数#A6#B15#dtype:int64#474-2、多个聚合函数#AB#sum6.015.0#mean2.05.0#474-3、按行聚合#05#17#29#dtype:int64#474-4、应用自定义函数#A2#B2#dtype:int64#474-5、使用字典指定不同聚合函数#A6.0#B5.0#dtype:float64475、pandas.DataFrame.transform方法475-1、语法#475、pandas.DataFrame.transform方法pandas.DataFrame.transform(func,axis=0,*args,**kwargs)CallfunconselfproducingaDataFramewiththesameaxisshapeasself.Parameters:funcfunction,str,list-likeordict-likeFunctiontousefortransformingthedata.Ifafunction,musteitherworkwhenpassedaDataFrameorwhenpassedtoDataFrame.apply.Iffuncisbothlist-likeanddict-like,dict-likebehaviortakesprecedence.Acceptedcombinationsare:functionstringfunctionnamelist-likeoffunctionsand/orfunctionnames,e.g.[np.exp,'sqrt']dict-likeofaxislabels->functions,functionnamesorlist-likeofsuch.axis{0or‘index’,1or‘columns’},default0If0or‘index’:applyfunctiontoeachcolumn.If1or‘columns’:applyfunctiontoeachrow.*argsPositionalargumentstopasstofunc.**kwargsKeywordargumentstopasstofunc.ReturnsataFrameADataFramethatmusthavethesamelengthasself.Raises:ValueErrorIfthereturnedDataFramehasadifferentlengththanself.475-2、参数475-2-1、func(必须):函数、字符串或可调用对象,应用于每一行或每一列的转换函数,可以是内置函数(如'mean'、'std')或用户自定义的函数。475-2-2、axis(可选,默认值为0):{0或'index',1或'columns'},指定转换的方向,0或'index'表示对列进行转换(逐列处理),1或'columns'表示对行进行转换(逐行处理)。475-2-3、*args(可选):元组,传递给转换函数的可选位置参数。475-2-4、**kwargs(可选):传递给转换函数的可选关键字参数。475-3、功能        用于对DataFrame中的数据进行转换操作,能够返回与原始DataFrame结构相同的形状,在数据转换过程中,可以应用指定的函数进行逐列或逐行处理,这在数据预处理和特征工程中非常有用,以保证数据的形状不变。475-4、返回值        返回一个与原始DataFrame结构相同的DataFrame或Series,包含通过func应用后的转换结果。475-5、说明    无475-6、用法475-6-1、数据准备无475-6-2、代码示例#475、pandas.DataFrame.transform方法#475-1、使用内置函数进行转换importpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#对每一列应用标准化处理result=df.transform(lambdaxx-x.mean())/x.std())print(result)#475-2、指定转换函数#使用NumPy的平方根函数进行转换importnumpyasnpimportpandasaspd#创建示例DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})result=df.transform(np.sqrt)print(result)475-6-3、结果输出#475、pandas.DataFrame.transform方法#475-1、使用内置函数进行转换#AB#0-1.0-1.0#10.00.0#21.01.0#475-2、指定转换函数#AB#01.0000002.000000#11.4142142.236068#21.7320512.449490二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-8 11:44 , Processed in 0.433585 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表