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

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

[复制链接]

2

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2024-9-10 04:07:19 | 显示全部楼层 |阅读模式
目录一、用法精讲451、pandas.DataFrame.pow方法451-1、语法451-2、参数451-3、功能451-4、返回值451-5、说明451-6、用法451-6-1、数据准备451-6-2、代码示例451-6-3、结果输出452、pandas.DataFrame.dot方法452-1、语法452-2、参数452-3、功能452-4、返回值452-5、说明452-6、用法452-6-1、数据准备452-6-2、代码示例452-6-3、结果输出453、pandas.DataFrame.radd方法453-1、语法453-2、参数453-3、功能453-4、返回值453-5、说明453-6、用法453-6-1、数据准备453-6-2、代码示例453-6-3、结果输出454、pandas.DataFrame.rsub方法454-1、语法454-2、参数454-3、功能454-4、返回值454-5、说明454-6、用法454-6-1、数据准备454-6-2、代码示例454-6-3、结果输出455、pandas.DataFrame.rmul方法455-1、语法455-2、参数455-3、功能455-4、返回值455-5、说明455-6、用法455-6-1、数据准备455-6-2、代码示例455-6-3、结果输出二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲451、pandas.DataFrame.pow方法451-1、语法#456、pandas.DataFrame.pow方法pandas.DataFrame.pow(other,axis='columns',level=None,fill_value=None)GetExponentialpowerofdataframeandother,element-wise(binaryoperatorpow).Equivalenttodataframe**other,butwithsupporttosubstituteafill_valueformissingdatainoneoftheinputs.Withreverseversion,rpow.Amongflexiblewrappers(add,sub,mul,div,floordiv,mod,pow)toarithmeticoperators:+,-,*,/,//,%,**.Parameterstherscalar,sequence,Series,dictorDataFrameAnysingleormultipleelementdatastructure,orlist-likeobject.axis{0or‘index’,1or‘columns’}Whethertocomparebytheindex(0or‘index’)orcolumns.(1or‘columns’).ForSeriesinput,axistomatchSeriesindexon.levelintorlabelBroadcastacrossalevel,matchingIndexvaluesonthepassedMultiIndexlevel.fill_valuefloatorNone,defaultNoneFillexistingmissing(NaN)values,andanynewelementneededforsuccessfulDataFramealignment,withthisvaluebeforecomputation.IfdatainbothcorrespondingDataFramelocationsismissingtheresultwillbemissing.ReturnsataFrameResultofthearithmeticoperation.451-2、参数451-2-1、other(必须):用于计算幂的对象,可以是另一个DataFrame、Series、标量或常数,DataFrame或Series应与调用的DataFrame形状兼容,以便进行元素级别的对齐。451-2-2、axis(可选,默认值为'columns'):{0or‘index’,1or‘columns’}, 指定对齐的轴,如果是0或'index',则按行对齐;如果是1或'columns',则按列对齐,默认情况下按列对齐。451-2-3、level(可选,默认值为None):如果使用MultiIndex(多级索引),可以指定在哪一层进行对齐,默认值为None,表示不使用多级索引。451-2-4、fill_value(可选,默认值为None):在执行操作时,用于替换缺失值(NaN)的值,如果DataFrame中存在NaN值,操作之前将使用fill_value进行替换,默认值为None,即不替换NaN值。451-3、功能        用于逐元素地对DataFrame进行幂运算,该方法返回一个新的DataFrame,其中每个元素是调用DataFrame中的元素与other对应位置元素的幂。451-4、返回值        返回一个新的DataFrame,其中每个元素是调用DataFrame中元素与other对应位置元素的幂。451-5、说明    无451-6、用法451-6-1、数据准备无451-6-2、代码示例#456、pandas.DataFrame.pow方法#456-1、与标量的幂运算importpandasaspddf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})result=df.pow(2)print(result,end='\n\n')#456-2、与另一个DataFrame的幂运算importpandasaspddf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})other=pd.DataFrame({'A':[2,2,2],'B':[3,3,3]})result=df.pow(other)print(result,end='\n\n')#456-3、使用fill_value参数处理缺失值importpandasaspddf1=pd.DataFrame({'A':[1,2,None],'B':[4,None,6]})df2=pd.DataFrame({'A':[2,2,2],'B':[2,2,2]})result=df1.pow(df2,fill_value=1)print(result)451-6-3、结果输出#456、pandas.DataFrame.pow方法#456-1、与标量的幂运算#AB#0116#1425#2936#456-2、与另一个DataFrame的幂运算#AB#0164#14125#29216#456-3、使用fill_value参数处理缺失值#AB#01.016.0#14.01.0#21.036.0452、pandas.DataFrame.dot方法452-1、语法#457、pandas.DataFrame.dot方法pandas.DataFrame.dot(other)ComputethematrixmultiplicationbetweentheDataFrameandother.ThismethodcomputesthematrixproductbetweentheDataFrameandthevaluesofanotherSeries,DataFrameoranumpyarray.Itcanalsobecalledusingself@other.ParameterstherSeries,DataFrameorarray-likeTheotherobjecttocomputethematrixproductwith.Returns:SeriesorDataFrameIfotherisaSeries,returnthematrixproductbetweenselfandotherasaSeries.IfotherisaDataFrameoranumpy.array,returnthematrixproductofselfandotherinaDataFrameofanp.array.452-2、参数452-2-1、other(必须):要与之进行矩阵乘积的对象,可以是Series、DataFrame或numpy数组。452-3、功能        用于计算DataFrame与其他对象(如另一个DataFrame、Series或常量)之间的矩阵乘积,结果是一个新的DataFrame或Series,取决于操作数的类型和形状。452-4、返回值        返回的是矩阵乘积的结果,具体返回的类型和形状取决于输入的other参数的类型和形状。452-5、说明452-5-1、当与DataFrame进行点积时,列索引必须对齐(匹配)才能进行操作。452-5-2、与Series进行点积时,Series的索引必须与DataFrame的列索引匹配。452-5-3、与numpy数组进行点积时,数组的形状必须与DataFrame适当对齐(列数相同)。452-6、用法452-6-1、数据准备无452-6-2、代码示例#457、pandas.DataFrame.dot方法#457-1、DataFrame与DataFrame之间的点积importpandasaspddf1=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})df2=pd.DataFrame({'A':[7,8],'B':[9,10],'C':[11,12]#注意:C列在这个操作中将被忽略,因为df1没有C列})#假设我们只对A和B列感兴趣,并且想计算df1和df2中每对相应行的点积#我们需要先确保df1和df2的行数相同(这里不同,所以我们只处理共有的部分)#为了演示,我们只取df1的前两行与df2进行点积common_rows=min(df1.shape[0],df2.shape[0])#使用numpy的点积功能,因为Pandas的dot()在这里不适用importnumpyasnp#提取df1和df2的前两列(A和B)df1_subset=df1[['A','B']].iloc[:common_rows]df2_subset=df2[['A','B']]#计算点积dot_products=np.dot(df1_subset.values,df2_subset.T.values)#注意转置df2_subsetprint(dot_products,end='\n\n')#457-2、DataFrame与Series之间的点积importpandasaspddf1=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})series=pd.Series([1,2],index=['A','B'])result=df1.dot(series)print(result,end='\n\n')#457-3、DataFrame与array-like对象的点积importnumpyasnpimportpandasaspddf1=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})array=np.array([[1,2],[3,4]])result=df1.dot(array)print(result)452-6-3、结果输出#457、pandas.DataFrame.dot方法#457-1、DataFrame与DataFrame之间的点积#[[4348]#[5966]]#457-2、DataFrame与Series之间的点积#09#112#215#dtype:int64#457-3、DataFrame与array-like对象的点积#01#01318#11724#22130453、pandas.DataFrame.radd方法453-1、语法#458、pandas.DataFrame.radd方法pandas.DataFrame.radd(other,axis='columns',level=None,fill_value=None)GetAdditionofdataframeandother,element-wise(binaryoperatorradd).Equivalenttoother+dataframe,butwithsupporttosubstituteafill_valueformissingdatainoneoftheinputs.Withreverseversion,add.Amongflexiblewrappers(add,sub,mul,div,floordiv,mod,pow)toarithmeticoperators:+,-,*,/,//,%,**.Parameterstherscalar,sequence,Series,dictorDataFrameAnysingleormultipleelementdatastructure,orlist-likeobject.axis{0or‘index’,1or‘columns’}Whethertocomparebytheindex(0or‘index’)orcolumns.(1or‘columns’).ForSeriesinput,axistomatchSeriesindexon.levelintorlabelBroadcastacrossalevel,matchingIndexvaluesonthepassedMultiIndexlevel.fill_valuefloatorNone,defaultNoneFillexistingmissing(NaN)values,andanynewelementneededforsuccessfulDataFramealignment,withthisvaluebeforecomputation.IfdatainbothcorrespondingDataFramelocationsismissingtheresultwillbemissing.ReturnsataFrameResultofthearithmeticoperation.453-2、参数453-2-1、other(必须):要加到DataFrame上的对象,可以是DataFrame、Series、标量等。453-2-2、axis(可选,默认值为'columns'):{0or‘index’,1or‘columns’}, 指定对齐的轴,如果是0或'index',则按行对齐;如果是1或'columns',则按列对齐,默认情况下按列对齐。453-2-3、level(可选,默认值为None):如果使用MultiIndex(多级索引),可以指定在哪一层进行对齐,默认值为None,表示不使用多级索引。453-2-4、fill_value(可选,默认值为None):在执行操作时,用于替换缺失值(NaN)的值,如果DataFrame中存在NaN值,操作之前将使用fill_value进行替换,默认值为None,即不替换NaN值。453-3、功能        用于执行DataFrame(或者Series)与另一个对象(例如另一个DataFrame、Series、标量等)之间的反向加法运算,反向加法运算指的是执行other+DataFrame而不是DataFrame+other,该方法通常在实现对象的反向运算符重载时被调用,例如在其他对象调用加法运算时,DataFrame作为右操作数。453-4、返回值        返回一个新的DataFrame,其中包含了原DataFrame与other进行加法运算后的结果,返回的DataFrame的形状和索引根据参与运算的两个对象自动对齐,缺失值(NaN)根据fill_value参数处理。具体详情如下:如果other是标量,则对DataFrame中的每个元素都加上该标量。如果other是另一个DataFrame或Series,则对应位置的元素相加,索引不匹配的地方会产生NaN,除非使用fill_value参数来指定替代值。如果存在多级索引,可以通过指定level参数来在特定级别上对齐和计算。453-5、说明    无453-6、用法453-6-1、数据准备无453-6-2、代码示例#458、pandas.DataFrame.radd方法#458-1、使用标量进行反向加法运算importpandasaspd#创建一个DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})result_scalar=df.radd(10)print(result_scalar,end='\n\n')#458-2、使用另一个DataFrame进行反向加法运算importpandasaspd#创建一个DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})#创建另一个DataFramedf2=pd.DataFrame({'A':[10,20,30],'B':[40,50,60]})result_df=df.radd(df2)print(result_df,end='\n\n')#458-3、使用fill_value进行反向加法运算importpandasaspd#创建一个DataFramedf=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})df3=pd.DataFrame({'A':[10,20],'C':[70,80]})result_fill_value=df.radd(df3,fill_value=0)print(result_fill_value)453-6-3、结果输出#458、pandas.DataFrame.radd方法#458-1、使用标量进行反向加法运算#AB#01114#11215#21316#458-2、使用另一个DataFrame进行反向加法运算#AB#01144#12255#23366#458-3、使用fill_value进行反向加法运算#ABC#011.04.070.0#122.05.080.0#23.06.0NaN454、pandas.DataFrame.rsub方法454-1、语法#459、pandas.DataFrame.rsub方法pandas.DataFrame.rsub(other,axis='columns',level=None,fill_value=None)GetSubtractionofdataframeandother,element-wise(binaryoperatorrsub).Equivalenttoother-dataframe,butwithsupporttosubstituteafill_valueformissingdatainoneoftheinputs.Withreverseversion,sub.Amongflexiblewrappers(add,sub,mul,div,floordiv,mod,pow)toarithmeticoperators:+,-,*,/,//,%,**.Parameterstherscalar,sequence,Series,dictorDataFrameAnysingleormultipleelementdatastructure,orlist-likeobject.axis{0or‘index’,1or‘columns’}Whethertocomparebytheindex(0or‘index’)orcolumns.(1or‘columns’).ForSeriesinput,axistomatchSeriesindexon.levelintorlabelBroadcastacrossalevel,matchingIndexvaluesonthepassedMultiIndexlevel.fill_valuefloatorNone,defaultNoneFillexistingmissing(NaN)values,andanynewelementneededforsuccessfulDataFramealignment,withthisvaluebeforecomputation.IfdatainbothcorrespondingDataFramelocationsismissingtheresultwillbemissing.ReturnsataFrameResultofthearithmeticoperation.454-2、参数454-2-1、other(必须):要减去的对象,可以是一个数值、Series、DataFrame或一个具有兼容形状的数组。如果other是一个常量(比如数字5),那么这个常量将被用作所有元素的被减数;如果是一个DataFrame或Series,则进行逐元素操作。454-2-2、axis(可选,默认值为'columns'):{0or‘index’,1or‘columns’}, 指定对齐的轴,如果是0或'index',则按行对齐;如果是1或'columns',则按列对齐,默认情况下按列对齐。454-2-3、level(可选,默认值为None):如果使用MultiIndex(多级索引),可以指定在哪一层进行对齐,默认值为None,表示不使用多级索引。454-2-4、fill_value(可选,默认值为None):在执行操作时,用于替换缺失值(NaN)的值,如果DataFrame中存在NaN值,操作之前将使用fill_value进行替换,默认值为None,即不替换NaN值。454-3、功能        执行反向的减法运算。例如,如果有两个数据帧df1和df2,那么df1.rsub(df2)将计算df2-df1。如果df1和df2形状相同,减法将在相应位置逐元素执行;如果df2是一个标量值(如整数或浮点数),那么此标量将用作被减数,数据帧df1中的每个元素作为减数。454-4、返回值        返回一个新的DataFrame或Series,包含反向减法操作的结果,原始数据帧df1不会被修改,rsub会生成一个新的数据结构,返回的数据结构的形状和df1相同,并且其元素是根据指定的减法操作计算得出的。454-5、说明    无454-6、用法454-6-1、数据准备无454-6-2、代码示例#459、pandas.DataFrame.rsub方法importpandasaspddf1=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})df2=pd.DataFrame({'A':[10,10,10],'B':[10,10,10]})result=df1.rsub(df2)print(result)454-6-3、结果输出#459、pandas.DataFrame.rsub方法#AB#096#185#274455、pandas.DataFrame.rmul方法455-1、语法#460、pandas.DataFrame.rmul方法pandas.DataFrame.rmul(other,axis='columns',level=None,fill_value=None)GetMultiplicationofdataframeandother,element-wise(binaryoperatorrmul).Equivalenttoother*dataframe,butwithsupporttosubstituteafill_valueformissingdatainoneoftheinputs.Withreverseversion,mul.Amongflexiblewrappers(add,sub,mul,div,floordiv,mod,pow)toarithmeticoperators:+,-,*,/,//,%,**.Parameterstherscalar,sequence,Series,dictorDataFrameAnysingleormultipleelementdatastructure,orlist-likeobject.axis{0or‘index’,1or‘columns’}Whethertocomparebytheindex(0or‘index’)orcolumns.(1or‘columns’).ForSeriesinput,axistomatchSeriesindexon.levelintorlabelBroadcastacrossalevel,matchingIndexvaluesonthepassedMultiIndexlevel.fill_valuefloatorNone,defaultNoneFillexistingmissing(NaN)values,andanynewelementneededforsuccessfulDataFramealignment,withthisvaluebeforecomputation.IfdatainbothcorrespondingDataFramelocationsismissingtheresultwillbemissing.ReturnsataFrameResultofthearithmeticoperation.455-2、参数455-2-1、other(必须):要乘的对象,可以是一个数值、Series、DataFrame或一个具有兼容形状的数组。如果other是一个常量,那么这个常量将被用作所有元素的乘数;如果是一个DataFrame或Series,则进行逐元素操作。455-2-2、axis(可选,默认值为'columns'):{0or‘index’,1or‘columns’}, 指定对齐的轴,如果是0或'index',则按行对齐;如果是1或'columns',则按列对齐,默认情况下按列对齐。455-2-3、level(可选,默认值为None):如果使用MultiIndex(多级索引),可以指定在哪一层进行对齐,默认值为None,表示不使用多级索引。455-2-4、fill_value(可选,默认值为None):在执行操作时,用于替换缺失值(NaN)的值,如果DataFrame中存在NaN值,操作之前将使用fill_value进行替换,默认值为None,即不替换NaN值。455-3、功能        执行反向的乘法运算。例如,如果有两个数据帧df1和df2,那么df1.rmul(df2)将计算df2*df1。如果df1和df2形状相同,乘法将在相应位置逐元素执行df1和df2;如果df2是一个标量值(如整数或浮点数),那么此标量将用作乘数,数据帧df1中的每个元素作为被乘数。455-4、返回值        返回一个新的DataFrame或Series,包含反向乘法操作的结果,原始数据帧df1不会被修改,rmul会生成一个新的数据结构,返回的数据结构的形状和df1相同,并且其元素是根据指定的乘法操作计算得出的。455-5、说明    无455-6、用法455-6-1、数据准备无455-6-2、代码示例#460、pandas.DataFrame.rmul方法importpandasaspddf1=pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})df2=pd.DataFrame({'A':[10,10,10],'B':[10,10,10]})result=df1.rmul(df2)print(result)455-6-3、结果输出#460、pandas.DataFrame.rmul方法#AB#01040#12050#23060二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-8 12:00 , Processed in 2.134826 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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