|
目录一、用法精讲231、pandas.Series.reorder_levels方法231-1、语法231-2、参数231-3、功能231-4、返回值231-5、说明231-6、用法231-6-1、数据准备231-6-2、代码示例231-6-3、结果输出232、pandas.Series.sort_values方法232-1、语法232-2、参数232-3、功能232-4、返回值232-5、说明232-6、用法232-6-1、数据准备232-6-2、代码示例232-6-3、结果输出233、pandas.Series.sort_index方法233-1、语法233-2、参数233-3、功能233-4、返回值233-5、说明233-6、用法233-6-1、数据准备233-6-2、代码示例233-6-3、结果输出234、pandas.Series.swaplevel方法234-1、语法234-2、参数234-3、功能234-4、返回值234-5、说明234-6、用法234-6-1、数据准备234-6-2、代码示例234-6-3、结果输出235、pandas.Series.unstack方法235-1、语法235-2、参数235-3、功能235-4、返回值235-5、说明235-6、用法235-6-1、数据准备235-6-2、代码示例235-6-3、结果输出二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲231、pandas.Series.reorder_levels方法231-1、语法#231、pandas.Series.reorder_levels方法pandas.Series.reorder_levels(order)Rearrangeindexlevelsusinginputorder.Maynotdroporduplicatelevels.ParametersrderlistofintrepresentingnewlevelorderReferencelevelbynumberorkey.Returns:typeofcaller(newobject)231-2、参数231-2-1、order(必须):指定重新排序索引的顺序,它应该是一个列表或元组,包含索引级别的顺序,级别的索引可以通过名称或位置来指定。如果提供的顺序不包含所有的级别,reorder_levels方法会将缺少的级别保持不变。231-3、功能 允许你根据指定的顺序重新排序Series的多级索引,这对于调整数据的组织结构很有用,尤其是在进行数据透视或汇总时。231-4、返回值 返回一个新的Series对象,其中的索引按照指定的顺序重新排序。231-5、说明 无231-6、用法231-6-1、数据准备无231-6-2、代码示例#231、pandas.Series.reorder_levels方法importpandasaspd#创建一个具有多级索引的Seriesindex=pd.MultiIndex.from_tuples([('A',1),('A',2),('B',1),('B',2)],names=['letter','number'])s=pd.Series([10,20,30,40],index=index)#重新排序索引s_reordered=s.reorder_levels(['number','letter'])print(s_reordered)231-6-3、结果输出#231、pandas.Series.reorder_levels方法#numberletter#1A10#2A20#1B30#2B40#dtype:int64232、pandas.Series.sort_values方法232-1、语法#232、pandas.Series.sort_values方法pandas.Series.sort_values(*,axis=0,ascending=True,inplace=False,kind='quicksort',na_position='last',ignore_index=False,key=None)Sortbythevalues.SortaSeriesinascendingordescendingorderbysomecriterion.Parameters:axis{0or‘index’}Unused.ParameterneededforcompatibilitywithDataFrame.ascendingboolorlistofbools,defaultTrueIfTrue,sortvaluesinascendingorder,otherwisedescending.inplacebool,defaultFalseIfTrue,performoperationin-place.kind{‘quicksort’,‘mergesort’,‘heapsort’,‘stable’},default‘quicksort’Choiceofsortingalgorithm.Seealsonumpy.sort()formoreinformation.‘mergesort’and‘stable’aretheonlystablealgorithms.na_position{‘first’or‘last’},default‘last’Argument‘first’putsNaNsatthebeginning,‘last’putsNaNsattheend.ignore_indexbool,defaultFalseIfTrue,theresultingaxiswillbelabeled0,1,…,n-1.keycallable,optionalIfnotNone,applythekeyfunctiontotheseriesvaluesbeforesorting.Thisissimilartothekeyargumentinthebuiltinsorted()function,withthenotabledifferencethatthiskeyfunctionshouldbevectorized.ItshouldexpectaSeriesandreturnanarray-like.Returns:SeriesorNoneSeriesorderedbyvaluesorNoneifinplace=True.232-2、参数232-2-1、axis(可选,默认值为0):指定排序的轴,对于Series对象,这个参数默认为0,即沿着数据的索引进行排序。232-2-2、ascending(可选,默认值为True):指定排序的顺序,True表示升序(默认),False表示降序。如果提供的是一个布尔列表,它必须与Series的索引长度相同,且会对不同的排序级别进行不同的排序。232-2-3、inplace(可选,默认值为False):是否在原地进行排序,True表示在原地排序并修改原始对象,False(默认)表示返回排序后的新对象。232-2-4、kind(可选,默认值为'quicksort'):排序算法类:'quicksort'、'mergesort'和'heapsort',任选其一。232-2-5、na_position(可选,默认值为'last'):NaN值的位置,可选值有'first'(默认)和'last',指定NaN值在排序后的结果中的位置。232-2-6、ignore_index(可选,默认值为False):排序后是否重新生成索引,False(默认)表示保留原索引,True表示生成新的连续索引。232-2-7、key(可选,默认值为None):函数,用于在排序前对数据进行转换,该函数会作用于每个数据值,然后基于转换后的值进行排序。232-3、功能 用于对Series对象的值进行排序,该方法支持多种排序选项,并可以根据需要进行配置。232-4、返回值 返回一个新的Series对象,其中的值按照指定的排序顺序排列,如果inplace=True,则对原对象进行修改,不返回新对象。232-5、说明 无232-6、用法232-6-1、数据准备无232-6-2、代码示例#232、pandas.Series.sort_values方法importpandasaspd#创建一个Series对象s=pd.Series([3,6,5,11,10,8,10,24])#对Series进行升序排序s_sorted=s.sort_values()print(s_sorted,end='\n\n')s_sorted=s.sort_values(ignore_index=True)print(s_sorted)232-6-3、结果输出#232、pandas.Series.sort_values方法#03#25#16#58#410#610#311#724#dtype:int64##03#15#26#38#410#510#611#724233、pandas.Series.sort_index方法233-1、语法#233、pandas.Series.sort_index方法pandas.Series.sort_index(*,axis=0,level=None,ascending=True,inplace=False,kind='quicksort',na_position='last',sort_remaining=True,ignore_index=False,key=None)SortSeriesbyindexlabels.ReturnsanewSeriessortedbylabelifinplaceargumentisFalse,otherwiseupdatestheoriginalseriesandreturnsNone.Parameters:axis{0or‘index’}Unused.ParameterneededforcompatibilitywithDataFrame.levelint,optionalIfnotNone,sortonvaluesinspecifiedindexlevel(s).ascendingboolorlist-likeofbools,defaultTrueSortascendingvs.descending.WhentheindexisaMultiIndexthesortdirectioncanbecontrolledforeachlevelindividually.inplacebool,defaultFalseIfTrue,performoperationin-place.kind{‘quicksort’,‘mergesort’,‘heapsort’,‘stable’},default‘quicksort’Choiceofsortingalgorithm.Seealsonumpy.sort()formoreinformation.‘mergesort’and‘stable’aretheonlystablealgorithms.ForDataFrames,thisoptionisonlyappliedwhensortingonasinglecolumnorlabel.na_position{‘first’,‘last’},default‘last’If‘first’putsNaNsatthebeginning,‘last’putsNaNsattheend.NotimplementedforMultiIndex.sort_remainingbool,defaultTrueIfTrueandsortingbylevelandindexismultilevel,sortbyotherlevelstoo(inorder)aftersortingbyspecifiedlevel.ignore_indexbool,defaultFalseIfTrue,theresultingaxiswillbelabeled0,1,…,n-1.keycallable,optionalIfnotNone,applythekeyfunctiontotheindexvaluesbeforesorting.Thisissimilartothekeyargumentinthebuiltinsorted()function,withthenotabledifferencethatthiskeyfunctionshouldbevectorized.ItshouldexpectanIndexandreturnanIndexofthesameshape.Returns:SeriesorNoneTheoriginalSeriessortedbythelabelsorNoneifinplace=True.233-2、参数233-2-1、axis(可选,默认值为0):指定排序的轴,对于Series对象,通常设置为0,表示对索引进行排序。233-2-2、level(可选,默认值为None):对多级索引(MultiIndex)进行排序时,指定排序的级别,可以是单个级别或级别的列表。233-2-3、ascending(可选,默认值为True):指定排序的顺序,True表示升序(默认);False表示降序,如果提供的是一个布尔列表,它必须与索引的级别数相同。233-2-4、inplace(可选,默认值为False):是否在原地进行排序,True表示在原地排序并修改原始对象,False(默认)表示返回排序后的新对象。233-2-5、kind(可选,默认值为'quicksort'):排序算法类:'quicksort'、'mergesort'和'heapsort',任选其一。233-2-6、na_position(可选,默认值为'last'):NaN值的位置,可选值有'first'(默认)和'last',指定NaN值在排序后的结果中的位置。233-2-7、sort_remaining(可选,默认值为True):在MultiIndex中,是否对剩余的级别进行排序。True(默认)表示对所有级别进行排序;False表示仅对指定的级别排序。233-2-8、ignore_index(可选,默认值为False):排序后是否重新生成索引,False(默认)表示保留原索引,True表示生成新的连续索引。233-2-9、key(可选,默认值为None):函数,用于在排序前对索引进行转换,该函数会作用于每个索引值,然后基于转换后的值进行排序。233-3、功能 用于对Series对象的索引进行排序,它对索引进行排序而不是对数据值排序。233-4、返回值 返回一个新的Series对象,其中的索引按照指定的排序顺序排列,如果inplace=True,则对原对象进行修改,不返回新对象。233-5、说明 无233-6、用法233-6-1、数据准备无233-6-2、代码示例#233、pandas.Series.sort_index方法importpandasaspd#创建一个Series对象s=pd.Series([3,1,2,5,4],index=['b','a','c','e','d'])#对索引进行升序排序s_sorted=s.sort_index()print(s_sorted,end='\n\n')s_sorted=s.sort_index(ignore_index=True)print(s_sorted)233-6-3、结果输出#233、pandas.Series.sort_index方法#a1#b3#c2#d4#e5#dtype:int64##01#13#22#34#45#dtype:int64234、pandas.Series.swaplevel方法234-1、语法#234、pandas.Series.swaplevel方法pandas.Series.swaplevel(i=-2,j=-1,copy=None)SwaplevelsiandjinaMultiIndex.Defaultistoswapthetwoinnermostlevelsoftheindex.Parameters:i,jintorstrLevelsoftheindicestobeswapped.Canpasslevelnameasstring.copybool,defaultTrueWhethertocopyunderlyingdata.NoteThecopykeywordwillchangebehaviorinpandas3.0.Copy-on-Writewillbeenabledbydefault,whichmeansthatallmethodswithacopykeywordwillusealazycopymechanismtodeferthecopyandignorethecopykeyword.Thecopykeywordwillberemovedinafutureversionofpandas.Youcanalreadygetthefuturebehaviorandimprovementsthroughenablingcopyonwritepd.options.mode.copy_on_write=TrueReturns:SeriesSerieswithlevelsswappedinMultiIndex.234-2、参数234-2-1、i(可选,默认值为-2):整数或字符串,表示要交换的第一个级别的标签或级别的索引位置。234-2-2、j(可选,默认值为-1):整数或字符串,表示要交换的第二个级别的标签或级别的索引位置。234-2-3、copy(可选,默认值为None):是否在交换级别时复制数据,True表示复制,False表示不复制,如果设为None,则取决于MultiIndex的具体情况。234-3、功能 用于交换Series对象中的多级索引(MultiIndex)的级别,该方法允许在MultiIndex中调换两个级别的位置。234-4、返回值 返回一个新的Series对象,其中指定的级别已被交换,如果copy=False,则可能对原对象进行修改(具体取决于索引的实现)。234-5、说明 无234-6、用法234-6-1、数据准备无234-6-2、代码示例#234、pandas.Series.swaplevel方法importpandasaspd#创建一个MultiIndex的Series对象index=pd.MultiIndex.from_tuples([('A',1),('A',2),('B',1),('B',2)],names=['letter','number'])s=pd.Series([10,20,30,40],index=index)#打印原始Seriesprint("OriginalSeries:")print(s)#交换'letter'和'number'两个级别s_swapped=s.swaplevel(i='letter',j='number')print("\nSeriesafterswappinglevels:")print(s_swapped)234-6-3、结果输出#234、pandas.Series.swaplevel方法#OriginalSeries:#letternumber#A110#220#B130#240#dtype:int64##Seriesafterswappinglevels:#numberletter#1A10#2A20#1B30#2B40#dtype:int64235、pandas.Series.unstack方法235-1、语法#235、pandas.Series.unstack方法pandas.Series.unstack(level=-1,fill_value=None,sort=True)Unstack,alsoknownaspivot,SerieswithMultiIndextoproduceDataFrame.Parameters:levelint,str,orlistofthese,defaultlastlevelLevel(s)tounstack,canpasslevelname.fill_valuescalarvalue,defaultNoneValuetousewhenreplacingNaNvalues.sortbool,defaultTrueSortthelevel(s)intheresultingMultiIndexcolumns.ReturnsataFrameUnstackedSeries.235-2、参数235-2-1、level(可选,默认值为-1):要转换为列的层级,默认值是-1,表示最后一个层级。如果Series是多层级的,level参数允许你选择要转换的层级,可以是单个整数、整数列表或层级名称(对于DataFrame)。235-2-2、fill_value(可选,默认值为None):在转换过程中用于填充缺失值的值,默认是None,即不进行填充,如果你指定了一个值,那么在转换过程中,所有缺失的数据点将被填充为这个值。235-2-3、sort(可选,默认值为True):是否对新生成的列进行排序,默认值是True,表示排序。如果设置为False,则保持原来的顺序,这对于保持数据的原始顺序很有用,尤其是在数据按照特定方式排序时。235-3、功能 将Series对象的指定层级的索引转换为DataFrame的列,这有助于将数据从长格式(即多级索引的Series)转换为宽格式(即普通的DataFrame),使数据更容易进行分析和操作。235-4、返回值 返回一个DataFrame,其中被转换为列的层级的索引现在成为DataFrame的列,原始的索引层级将被保留,或根据指定的层级被处理。235-5、说明 无235-6、用法235-6-1、数据准备无235-6-2、代码示例#235、pandas.Series.unstack方法importpandasaspddata=pd.Series([1,2,3,4],index=[['NewYork','NewYork','LosAngeles','LosAngeles'],['2023-01-01','2023-01-02','2023-01-01','2023-01-02']])print(data,end='\n\n')df=data.unstack(level=-1)print(df)235-6-3、结果输出#235、pandas.Series.unstack方法#NewYork2023-01-011#2023-01-022#LosAngeles2023-01-013#2023-01-024#dtype:int64##2023-01-012023-01-02#LosAngeles34#NewYork12二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
|
|