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

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

[复制链接]

4

主题

0

回帖

13

积分

新手上路

积分
13
发表于 2024-9-10 01:53:17 | 显示全部楼层 |阅读模式
目录一、用法精讲111、pandas.Series.item方法111-1、语法111-2、参数111-3、功能111-4、返回值111-5、说明111-6、用法111-6-1、数据准备111-6-2、代码示例111-6-3、结果输出112、pandas.Series.xs方法112-1、语法112-2、参数112-3、功能112-4、返回值112-5、说明112-6、用法112-6-1、数据准备112-6-2、代码示例112-6-3、结果输出113、pandas.Series.add方法113-1、语法113-2、参数113-3、功能113-4、返回值113-5、说明113-6、用法113-6-1、数据准备113-6-2、代码示例113-6-3、结果输出114、pandas.Series.sub方法114-1、语法114-2、参数114-3、功能114-4、返回值114-5、说明114-6、用法114-6-1、数据准备114-6-2、代码示例114-6-3、结果输出115、pandas.Series.mul方法115-1、语法115-2、参数115-3、功能115-4、返回值115-5、说明115-6、用法115-6-1、数据准备115-6-2、代码示例115-6-3、结果输出二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲111、pandas.Series.item方法111-1、语法#111、pandas.Series.item方法pandas.Series.item()ReturnthefirstelementoftheunderlyingdataasaPythonscalar.Returns:scalarThefirstelementofSeriesorIndex.Raises:ValueErrorIfthedataisnotlength=1.111-2、参数        无111-3、功能        用于从pandas.Series对象中获取单一的元素值,并返回该值。111-4、返回值        返回Series中唯一元素的值。111-5、说明        在使用item方法之前,可以考虑检查Series的长度,以确保安全调用。111-6、用法111-6-1、数据准备无111-6-2、代码示例#111、pandas.Series.item方法importpandasaspd#创建一个只有一个元素的Series对象s=pd.Series([42])#使用item方法获取这个元素iflen(s)==1:value=s.item()else:print("Seriesdoesnotcontainexactlyoneelement.")print(value)111-6-3、结果输出#111、pandas.Series.item方法#42112、pandas.Series.xs方法112-1、语法#112、pandas.Series.xs方法pandas.Series.xs(key,axis=0,level=None,drop_level=True)Returncross-sectionfromtheSeries/DataFrame.ThismethodtakesakeyargumenttoselectdataataparticularlevelofaMultiIndex.Parameters:keylabelortupleoflabelLabelcontainedintheindex,orpartiallyinaMultiIndex.axis{0or‘index’,1or‘columns’},default0Axistoretrievecross-sectionon.levelobject,defaultstofirstnlevels(n=1orlen(key))IncaseofakeypartiallycontainedinaMultiIndex,indicatewhichlevelsareused.Levelscanbereferredbylabelorposition.drop_levelbool,defaultTrueIfFalse,returnsobjectwithsamelevelsasself.Returns:SeriesorDataFrameCross-sectionfromtheoriginalSeriesorDataFramecorrespondingtotheselectedindexlevels.112-2、参数112-2-1、key(必须):任意数据类型,通常为索引标签,表示要提取的索引标签值,如果Series有多层索引,则key可以是一个具体的层级标签(对于多层索引,需要指定level)。112-2-2、axis(可选,默认值为0):一个整数或字符串,表示指定操作的轴。对于Series来说,axis总是0,因为Series只有一个轴,表示索引轴;在多层索引的DataFrame中,这个参数允许指定不同的轴。112-2-3、level(可选,默认值为None):一个整数或字符串,表示指定要在多层索引中提取的具体层级。如果Series没有多层索引,此参数被忽略。如果指定此参数,则key应为指定层级的标签值。例如,在多层索引的Series中,可以通过指定level来选择特定的层级。112-2-4、drop_level(可选,默认值为True):布尔值,表示指定在提取值后是否从结果中删除所使用的层级。如果为True,提取的结果将不包含使用的索引层级;如果为False,结果将保留该层级的索引。112-3、功能        用于从一个pandas.Series对象中选择特定的数据,该方法可以通过给定的索引标签来切片Series,并返回与该标签对应的值。112-4、返回值        返回指定索引标签对应的单个值,或者如果key匹配多个值,则返回一个新的Series。112-5、说明112-5-1、如果指定的key不存在于索引中,会引发KeyError。112-5-2、当使用level时,确保Series是多层索引的,否则指定level参数会导致错误。112-5-3、drop_level的设置会影响结果的索引结构,True时会去掉提取的层级,False时保留。112-6、用法112-6-1、数据准备无112-6-2、代码示例#112、pandas.Series.xs方法#112-1、基本应用importpandasaspds=pd.Series([10,20,30],index=['a','b','c'])#获取索引为'b'的值value=s.xs('b')print(value,end='\n\n')#112-2、多层索引示例importpandasaspd#创建多层索引的Seriesarrays=[['A','A','B','B'],[1,2,1,2]]index=pd.MultiIndex.from_arrays(arrays,names=('letters','numbers'))s_multi=pd.Series([100,200,300,400],index=index)#获取数字为1的所有值,保持原始层级value=s_multi.xs(1,level='numbers',drop_level=False)print(value,end='\n\n')#获取数字为1的所有值,删除层级value=s_multi.xs(1,level='numbers',drop_level=True)print(value)112-6-3、结果输出#112、pandas.Series.xs方法#112-1、基本应用#20#112-2、多层索引示例#获取数字为1的所有值,保持原始层级#lettersnumbers#A1100#B1300#dtype:int64#获取数字为1的所有值,删除层级#letters#A100#B300#dtype:int64113、pandas.Series.add方法113-1、语法#113、pandas.Series.add方法pandas.Series.add(other,level=None,fill_value=None,axis=0)ReturnAdditionofseriesandother,element-wise(binaryoperatoradd).Equivalenttoseries+other,butwithsupporttosubstituteafill_valueformissingdataineitheroneoftheinputs.ParameterstherSeriesorscalarvaluelevelintornameBroadcastacrossalevel,matchingIndexvaluesonthepassedMultiIndexlevel.fill_valueNoneorfloatvalue,defaultNone(NaN)Fillexistingmissing(NaN)values,andanynewelementneededforsuccessfulSeriesalignment,withthisvaluebeforecomputation.IfdatainbothcorrespondingSerieslocationsismissingtheresultoffilling(atthatlocation)willbemissing.axis{0or‘index’}Unused.ParameterneededforcompatibilitywithDataFrame.Returns:SeriesTheresultoftheoperation.113-2、参数113-2-1、other(必须):表示要与当前Series对象进行加法操作的对象。如果是Series或DataFrame,则将其与当前Series对象按元素逐一加法;如果是标量值,则该值会与Series中的每一个元素相加。113-2-2、level(可选,默认值为None):一个整数或字符串,如果other是一个多层索引的Series或DataFrame,可以通过指定此参数来对齐相同的层级进行加法,level用于指明要对齐的层级标签。113-2-3、fill_value(可选,默认值为None):标量值,当other中存在缺失值(NaN)时,用于填充缺失的值,即当other中某些索引标签在Series中不存在时,使用此值填补。113-2-4、axis(可选,默认值为0):一个整数或字符串,表示指定沿哪个轴进行操作。对于Series,此参数通常被忽略,因为Series只有一个轴;对于DataFrame,则可以指定沿行或列进行操作。113-3、功能        用于执行两个Series对象之间的逐元素加法操作。113-4、返回值    返回一个新的Series对象,其中的每个元素是原Series和other对应位置元素的和。返回的Series的索引是Series与other的并集,如果other的索引中有当前Series中不存在的标签,这些标签对应的值会是填充值(如果设置了fill_value)或NaN(如果没有设置fill_value)。113-5、说明113-5-1、如果other的索引不完全匹配Series的索引,并且fill_value参数没有设置,缺失值会导致结果中的NaN。113-5-2、使用fill_value可以处理缺失值,使加法操作更加鲁棒。113-5-3、当涉及到多层索引时,确保level参数正确指定,以保证对齐的准确性。113-6、用法113-6-1、数据准备无113-6-2、代码示例#113、pandas.Series.add方法#113-1、基本用法importpandasaspds1=pd.Series([1,2,3],index=['a','b','c'])s2=pd.Series([4,5,6],index=['a','b','c'])#执行逐元素加法result=s1.add(s2)print(result,end='\n\n')#113-2、使用标量值importpandasaspds1=pd.Series([1,2,3],index=['a','b','c'])s2=pd.Series([4,5,6],index=['a','b','c'])#使用标量值进行加法result=s1.add(10)print(result,end='\n\n')#113-3、使用fill_value参数importpandasaspds1=pd.Series([1,2,3],index=['a','b','c'])s2=pd.Series([4,5,6],index=['a','b','c'])s3=pd.Series([7,8],index=['a','d'])result=s1.add(s3,fill_value=0)print(result,end='\n\n')#113-4、使用多层索引importpandasaspd#创建多层索引的Seriesarrays=[['A','A','B','B'],[1,2,1,2]]index=pd.MultiIndex.from_arrays(arrays,names=('letters','numbers'))s_multi1=pd.Series([10,20,30,40],index=index)s_multi2=pd.Series([1,2,3,4],index=index)#执行逐元素加法result_multi=s_multi1.add(s_multi2)print(result_multi)113-6-3、结果输出#113、pandas.Series.add方法#113-1、基本用法#a5#b7#c9#dtype:int64#113-2、使用标量值#a11#b12#c13#dtype:int64#113-3、使用fill_value参数#a8.0#b2.0#c3.0#d8.0#dtype:float64#113-4、使用多层索引#lettersnumbers#A111#222#B133#244#dtype:int64114、pandas.Series.sub方法114-1、语法#114、pandas.Series.sub方法pandas.Series.sub(other,level=None,fill_value=None,axis=0)ReturnSubtractionofseriesandother,element-wise(binaryoperatorsub).Equivalenttoseries-other,butwithsupporttosubstituteafill_valueformissingdataineitheroneoftheinputs.ParameterstherSeriesorscalarvaluelevelintornameBroadcastacrossalevel,matchingIndexvaluesonthepassedMultiIndexlevel.fill_valueNoneorfloatvalue,defaultNone(NaN)Fillexistingmissing(NaN)values,andanynewelementneededforsuccessfulSeriesalignment,withthisvaluebeforecomputation.IfdatainbothcorrespondingSerieslocationsismissingtheresultoffilling(atthatlocation)willbemissing.axis{0or‘index’}Unused.ParameterneededforcompatibilitywithDataFrame.Returns:SeriesTheresultoftheoperation.114-2、参数114-2-1、other(必须):被减数,可以是与当前Series对象相同长度的Series、DataFrame或一个标量值,如果是DataFrame,则会对每列执行相应的减法操作。114-2-2、level(可选,默认值为None):一个整数或字符串,如果当前Series或other有多层索引(MultiIndex),level参数用于指定在哪一层索引上对齐,这样可以在指定层级上进行逐元素减法运算,而不是在所有层级上。114-2-3、fill_value(可选,默认值为None):标量值,当other的某些索引值在当前Series中不存在时,使用fill_value来填补这些缺失值,这样,fill_value代替了缺失的数据参与计算。114-2-4、axis(可选,默认值为0):这个参数主要在DataFrame上有效,用于指定操作的轴;在Series上,通常没有必要设置这个参数,因为Series只有一个轴(轴0)。114-3、功能        用于对两个Series对象进行逐元素的减法操作。114-4、返回值        返回一个新的Series对象,其中的每个元素是原Series和other对应位置元素的差。返回的Series的索引是Series与other的并集,如果other的索引中有当前Series中不存在的标签,这些标签对应的值会是填充值(如果设置了fill_value)或NaN(如果没有设置fill_value)。114-5、说明    无114-6、用法114-6-1、数据准备无114-6-2、代码示例#114、pandas.Series.sub方法#114-1、基本用法importpandasaspds1=pd.Series([5,6,7],index=['a','b','c'])s2=pd.Series([1,2,3],index=['a','b','c'])result=s1.sub(s2)print(result,end='\n\n')#114-2、使用level参数importpandasaspdarrays=[['A','A','B','B'],[1,2,1,2]]index=pd.MultiIndex.from_arrays(arrays,names=('letters','numbers'))s1=pd.Series([10,20,30,40],index=index)s2=pd.Series([1,2,3,4],index=index)result=s1.sub(s2,level='letters')print(result,end='\n\n')#114-3、使用fill_value参数importpandasaspds1=pd.Series([5,6],index=['a','b'])s2=pd.Series([1,2,3],index=['a','b','c'])result=s1.sub(s2,fill_value=0)print(result,end='\n\n')#114-4、使用axis参数(主要适用于DataFrame)importpandasaspddf1=pd.DataFrame({'A':[10,20],'B':[30,40]})df2=pd.DataFrame({'A':[1,2],'B':[3,4]})result=df1.sub(df2,axis=0)print(result)114-6-3、结果输出#114、pandas.Series.sub方法#114-1、基本用法#a4#b4#c4#dtype:int64#114-2、使用level参数#lettersnumbers#A19#218#B127#236#dtype:int64#114-3、使用fill_value参数#a4.0#b4.0#c-3.0#dtype:float64#114-4、使用axis参数(主要适用于DataFrame)#AB#0927#11836115、pandas.Series.mul方法115-1、语法#115、pandas.Series.mul方法pandas.Series.mul(other,level=None,fill_value=None,axis=0)ReturnMultiplicationofseriesandother,element-wise(binaryoperatormul).Equivalenttoseries*other,butwithsupporttosubstituteafill_valueformissingdataineitheroneoftheinputs.ParameterstherSeriesorscalarvaluelevelintornameBroadcastacrossalevel,matchingIndexvaluesonthepassedMultiIndexlevel.fill_valueNoneorfloatvalue,defaultNone(NaN)Fillexistingmissing(NaN)values,andanynewelementneededforsuccessfulSeriesalignment,withthisvaluebeforecomputation.IfdatainbothcorrespondingSerieslocationsismissingtheresultoffilling(atthatlocation)willbemissing.axis{0or‘index’}Unused.ParameterneededforcompatibilitywithDataFrame.Returns:SeriesTheresultoftheoperation.115-2、参数115-2-1、other(必须):乘数,可以是与当前Series对象长度相同的Series、DataFrame或一个标量值。如果是DataFrame,会对每列进行逐元素的乘法操作。115-2-2、level(可选,默认值为None):如果当前Series或other有多层索引(MultiIndex),level参数用于指定在哪一层索引上对齐,这样可以在指定层级上进行逐元素乘法运算,而不是在所有层级上。115-2-3、fill_value(可选,默认值为None):当other的某些索引值在当前Series中不存在时,使用fill_value来填补这些缺失值,这样,fill_value代替了缺失的数据参与计算。115-2-4、axis(可选,默认值为0):主要在DataFrame上有效,用于指定操作的轴;在Series上,通常没有必要设置这个参数,因为Series只有一个轴(轴0)。115-3、功能        用于执行元素级的乘法操作。具体来说,它会将Series中的每个元素与另一个序列(Series或兼容的数组类型,如NumPy数组)中的对应元素相乘。如果不存在对应元素(比如两个Series的索引不完全匹配),则可以通过fill_value参数来指定一个填充值,以便进行乘法操作。115-4、返回值        返回一个新的Series,其中包含原始Series和other参数指定的序列(或数组)之间元素级乘法的结果。如果两个输入序列的索引不完全匹配,并且指定了fill_value,则结果Series的索引将是两个输入序列索引的并集,缺失值将用fill_value替换以进行乘法操作。115-5、说明    无115-6、用法115-6-1、数据准备无115-6-2、代码示例#115、pandas.Series.mul方法#115-1、基本用法importpandasaspds1=pd.Series([2,3,4],index=['a','b','c'])s2=pd.Series([5,6,7],index=['a','b','c'])result=s1.mul(s2)print(result,end='\n\n')#115-2、使用level参数importpandasaspdarrays=[['A','A','B','B'],[1,2,1,2]]index=pd.MultiIndex.from_arrays(arrays,names=('letters','numbers'))s1=pd.Series([10,20,30,40],index=index)s2=pd.Series([2,3,4,5],index=index)result=s1.mul(s2,level='letters')print(result,end='\n\n')#115-3、使用fill_value参数importpandasaspds1=pd.Series([1,2],index=['a','b'])s2=pd.Series([10,20,30],index=['a','b','c'])result=s1.mul(s2,fill_value=1)print(result,end='\n\n')#115-4、使用axis参数(主要适用于DataFrame)importpandasaspddf1=pd.DataFrame({'A':[1,2],'B':[3,4]})df2=pd.DataFrame({'A':[10,20],'B':[30,40]})result=df1.mul(df2,axis=0)print(result)115-6-3、结果输出#115、pandas.Series.mul方法#115-1、基本用法#a10#b18#c28#dtype:int64#115-2、使用level参数#lettersnumbers#A120#260#B1120#2200#dtype:int64#115-3、使用fill_value参数#a10.0#b40.0#c30.0#dtype:float64#115-4、使用axis参数(主要适用于DataFrame)#AB#01090#140160二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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