|
目录一、用法精讲241、pandas.Series.view方法241-1、语法241-2、参数241-3、功能241-4、返回值241-5、说明241-6、用法241-6-1、数据准备241-6-2、代码示例241-6-3、结果输出242、pandas.Series.compare方法242-1、语法242-2、参数242-3、功能242-4、返回值242-5、说明242-6、用法242-6-1、数据准备242-6-2、代码示例242-6-3、结果输出243、pandas.Series.update方法243-1、语法243-2、参数243-3、功能243-4、返回值243-5、说明243-6、用法243-6-1、数据准备243-6-2、代码示例243-6-3、结果输出244、pandas.Series.asfreq方法244-1、语法244-2、参数244-3、功能244-4、返回值244-5、说明244-6、用法244-6-1、数据准备244-6-2、代码示例244-6-3、结果输出245、pandas.Series.asof方法245-1、语法245-2、参数245-3、功能245-4、返回值245-5、说明245-6、用法245-6-1、数据准备245-6-2、代码示例245-6-3、结果输出二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲241、pandas.Series.view方法241-1、语法#241、pandas.Series.view方法pandas.Series.view(dtype=None)CreateanewviewoftheSeries.Deprecatedsinceversion2.2.0:Series.viewisdeprecatedandwillberemovedinafutureversion.UseSeries.astype()asanalternativetochangethedtype.ThisfunctionwillreturnanewSerieswithaviewofthesameunderlyingvaluesinmemory,optionallyreinterpretedwithanewdatatype.Thenewdatatypemustpreservethesamesizeinbytesastonotcauseindexmisalignment.Parameters:dtypedatatypeDatatypeobjectoroneoftheirstringrepresentations.Returns:SeriesAnewSeriesobjectasaviewofthesamedatainmemory.241-2、参数241-2-1、dtype(可选,默认值为None):数据类型,可以是NumPy数据类型或pandas数据类型。如果未指定,返回相同dtype的视图。241-3、功能 用于创建Series的视图,并且可以通过指定不同的数据类型来查看同一数据在内存中的不同表示,这在数据转换和内存管理方面非常有用。241-4、返回值 返回的视图是一个新的Series对象,但它与原始Series共享同一块内存,因此对视图所做的修改会直接影响原始Series。241-5、说明 此方法目前仍然能用,但后续将被pandas.Series.astype方法所替代。241-6、用法241-6-1、数据准备无241-6-2、代码示例#241、pandas.Series.view方法#241-1、创建一个视图并查看不同的数据类型表示importpandasaspd#创建一个Seriess=pd.Series([1,2,3,4])#以float64数据类型查看Seriesview_as_float=s.view(dtype='float64')print("OriginalSeries:")print(s)print("Viewedasfloat64:")print(view_as_float,end='\n\n')#241-2、修改视图中的数据,影响原始Seriesimportpandasaspd#创建一个Seriess_original=pd.Series([1,2,3,4])#创建一个视图s_view=s_original.view()#修改视图中的数据s_view[0]=10print("OriginalSeriesaftermodification:")print(s_original)print("Modifiedview:")print(s_view)241-6-3、结果输出#241、pandas.Series.view方法#241-1、创建一个视图并查看不同的数据类型表示#OriginalSeries:#01#12#23#34#dtype:int64#Viewedasfloat64:#04.940656e-324#19.881313e-324#21.482197e-323#31.976263e-323#dtype:float64#241-2、修改视图中的数据,影响原始Series#OriginalSeriesaftermodification:#010#12#23#34#dtype:int64#Modifiedview:#010#12#23#34#dtype:int64242、pandas.Series.compare方法242-1、语法#242、pandas.Series.compare方法pandas.Series.compare(other,align_axis=1,keep_shape=False,keep_equal=False,result_names=('self','other'))ComparetoanotherSeriesandshowthedifferences.ParameterstherSeriesObjecttocomparewith.align_axis{0or‘index’,1or‘columns’},default1Determinewhichaxistoalignthecomparisonon.0,or‘index’Resultingdifferencesarestackedverticallywithrowsdrawnalternatelyfromselfandother.1,or‘columns’Resultingdifferencesarealignedhorizontallywithcolumnsdrawnalternatelyfromselfandother.keep_shapebool,defaultFalseIftrue,allrowsandcolumnsarekept.Otherwise,onlytheoneswithdifferentvaluesarekept.keep_equalbool,defaultFalseIftrue,theresultkeepsvaluesthatareequal.Otherwise,equalvaluesareshownasNaNs.result_namestuple,default(‘self’,‘other’)Setthedataframesnamesinthecomparison.Newinversion1.5.0.Returns:SeriesorDataFrameIfaxisis0or‘index’theresultwillbeaSeries.TheresultingindexwillbeaMultiIndexwith‘self’and‘other’stackedalternatelyattheinnerlevel.Ifaxisis1or‘columns’theresultwillbeaDataFrame.Itwillhavetwocolumnsnamely‘self’and‘other’.242-2、参数242-2-1、other(必须):表示另一个与当前Series进行比较的Series。242-2-2、align_axis(可选,默认值为1):表示对齐轴,可选0或1:1表示列对齐,0表示行对齐。242-2-3、keep_shape(可选,默认值为False):是否保留原始的Series形状,如果为True,则保留NaN值。242-2-4、keep_equal(可选,默认值为False):是否在结果中保留相等的元素,如果为True,相等的元素也会显示在结果中。242-2-5、result_names(可选,默认值为('self','other')):表示结果中显示的列名。242-3、功能 用于对比两个Series对象,找出不同之处。242-4、返回值 返回一个DataFrame,其中包含两个Series对比后的差异部分。242-5、说明 无242-6、用法242-6-1、数据准备无242-6-2、代码示例#242、pandas.Series.compare方法importpandasaspd#创建两个Seriess1=pd.Series([5,11,10,8])s2=pd.Series([3,6,10,24])#对比两个Seriesresult=s1.compare(s2)print("Comparisonresult:")print(result,end='\n\n')242-6-3、结果输出#242、pandas.Series.compare方法#Comparisonresult:#selfother#05.03.0#111.06.0#38.024.0243、pandas.Series.update方法243-1、语法#243、pandas.Series.update方法pandas.Series.update(other)ModifySeriesinplaceusingvaluesfrompassedSeries.Usesnon-NAvaluesfrompassedSeriestomakeupdates.Alignsonindex.ParameterstherSeries,orobjectcoercibleintoSeries243-2、参数243-2-1、other(必须):表示另一个Series或DataFrame,用于更新当前Series的值,如果other是DataFrame,必须和当前Series具有相同的索引。243-3、功能 用于使用另一个Series的值来更新当前Series的值,它直接修改原Series,并且不返回新的对象。243-4、返回值 没有返回值,它是一个inplace操作,这意味着它会直接修改调用该方法的Series对象,而不是返回一个新的Series。243-5、说明 无243-6、用法243-6-1、数据准备无243-6-2、代码示例#243、pandas.Series.update方法#243-1、基本更新importpandasaspd#创建两个Seriess1=pd.Series({'a':3,'b':6,'c':10,'d':24})s2=pd.Series({'b':5,'d':11,'e':10,'f':8})#使用s2更新s1s1.update(s2)print("UpdatedSeries:")print(s1,end='\n\n')#243-2、带有NaN值的更新importpandasaspd#创建两个Series,其中包含NaN值s3=pd.Series({'a':1,'b':2,'c':3,'d':4,'e':None})s4=pd.Series({'b':20,'d':None,'e':50})#使用s4更新s3s3.update(s4)print("UpdatedSerieswithNaNvalues:")print(s3)243-6-3、结果输出#243、pandas.Series.update方法#243-1、基本更新importpandasaspd#创建两个Seriess1=pd.Series({'a':3,'b':6,'c':10,'d':24})s2=pd.Series({'b':5,'d':11,'e':10,'f':8})#使用s2更新s1s1.update(s2)print("UpdatedSeries:")print(s1,end='\n\n')#243-2、带有NaN值的更新importpandasaspd#创建两个Series,其中包含NaN值s3=pd.Series({'a':1,'b':2,'c':3,'d':4,'e':None})s4=pd.Series({'b':20,'d':None,'e':50})#使用s4更新s3s3.update(s4)print("UpdatedSerieswithNaNvalues:")print(s3)244、pandas.Series.asfreq方法244-1、语法#244、pandas.Series.asfreq方法pandas.Series.asfreq(freq,method=None,how=None,normalize=False,fill_value=None)Converttimeseriestospecifiedfrequency.Returnstheoriginaldataconformedtoanewindexwiththespecifiedfrequency.IftheindexofthisSeries/DataFrameisaPeriodIndex,thenewindexistheresultoftransformingtheoriginalindexwithPeriodIndex.asfreq(sotheoriginalindexwillmapone-to-onetothenewindex).Otherwise,thenewindexwillbeequivalenttopd.date_range(start,end,freq=freq)wherestartandendare,respectively,thefirstandlastentriesintheoriginalindex(seepandas.date_range()).Thevaluescorrespondingtoanytimestepsinthenewindexwhichwerenotpresentintheoriginalindexwillbenull(NaN),unlessamethodforfillingsuchunknownsisprovided(seethemethodparameterbelow).Theresample()methodismoreappropriateifanoperationoneachgroupoftimesteps(suchasanaggregate)isnecessarytorepresentthedataatthenewfrequency.Parameters:freqDateOffsetorstrFrequencyDateOffsetorstring.method{‘backfill’/’bfill’,‘pad’/’ffill’},defaultNoneMethodtouseforfillingholesinreindexedSeries(notethisdoesnotfillNaNsthatalreadywerepresent):‘pad’/‘ffill’:propagatelastvalidobservationforwardtonextvalid‘backfill’/‘bfill’:useNEXTvalidobservationtofill.how{‘start’,‘end’},defaultendForPeriodIndexonly(seePeriodIndex.asfreq).normalizebool,defaultFalseWhethertoresetoutputindextomidnight.fill_valuescalar,optionalValuetouseformissingvalues,appliedduringupsampling(notethisdoesnotfillNaNsthatalreadywerepresent).Returns:Series/DataFrameSeries/DataFrameobjectreindexedtothespecifiedfrequency.244-2、参数244-2-1、freq(必须):字符串或DataOffset对象,表示指定目标频率,常见的频率字符串包括:'D': 每日'M': 每月'A': 每年'H': 每小时'T'或'min': 每分钟'S': 每秒244-2-2、method(可选,默认值为None):字符串('pad','ffill','backfill','bfill')或None,指定当重新采样时如何填充缺失的值。'pad'或'ffill':用前一个有效值填充缺失值。'backfill'或'bfill':用下一个有效值填充缺失值。244-2-3、how(可选,默认值为None):字符串,在较新的版本中已经被移除,可以忽略此参数。244-2-4、normalize(可选,默认值为False):布尔值,如果为True,则将时间戳规范化到午夜时间。244-2-5、fill_value(可选,默认值为None):标量值,指定用于填充缺失值的标量值。244-3、功能 用于将时间序列重新采样为指定的频率,可能会填充或不填充缺失值,具体取决于method和fill_value参数。244-4、返回值 返回一个新的Series,其索引为指定频率的时间戳,数据根据指定的填充方法处理。244-5、说明 无244-6、用法244-6-1、数据准备无244-6-2、代码示例#244、pandas.Series.asfreq方法importpandasaspd#创建一个时间序列rng=pd.date_range('2024-01-01',periods=6,freq='2D')ts=pd.Series(range(6),index=rng)#将时间序列转换为每日频率,使用前向填充方法ts_daily_ffill=ts.asfreq('D',method='ffill')#将时间序列转换为每日频率,不填充缺失值ts_daily_no_fill=ts.asfreq('D')#将时间序列转换为每日频率,填充缺失值为0ts_daily_fill_value=ts.asfreq('D',fill_value=0)print("原始时间序列:")print(ts)print("\n转换为每日频率,使用前向填充方法:")print(ts_daily_ffill)print("\n转换为每日频率,不填充缺失值:")print(ts_daily_no_fill)print("\n转换为每日频率,填充缺失值为0:")print(ts_daily_fill_value)244-6-3、结果输出#244、pandas.Series.asfreq方法#原始时间序列:#2024-01-010#2024-01-031#2024-01-052#2024-01-073#2024-01-094#2024-01-115#Freq:2D,dtype:int64##转换为每日频率,使用前向填充方法:#2024-01-010#2024-01-020#2024-01-031#2024-01-041#2024-01-052#2024-01-062#2024-01-073#2024-01-083#2024-01-094#2024-01-104#2024-01-115#Freq,dtype:int64##转换为每日频率,不填充缺失值:#2024-01-010.0#2024-01-02NaN#2024-01-031.0#2024-01-04NaN#2024-01-052.0#2024-01-06NaN#2024-01-073.0#2024-01-08NaN#2024-01-094.0#2024-01-10NaN#2024-01-115.0#Freq,dtype:float64##转换为每日频率,填充缺失值为0:#2024-01-010#2024-01-020#2024-01-031#2024-01-040#2024-01-052#2024-01-060#2024-01-073#2024-01-080#2024-01-094#2024-01-100#2024-01-115#Freq,dtype:int64245、pandas.Series.asof方法245-1、语法#245、pandas.Series.asof方法pandas.Series.asof(where,subset=None)Returnthelastrow(s)withoutanyNaNsbeforewhere.Thelastrow(foreachelementinwhere,iflist)withoutanyNaNistaken.IncaseofaDataFrame,thelastrowwithoutNaNconsideringonlythesubsetofcolumns(ifnotNone)Ifthereisnogoodvalue,NaNisreturnedforaSeriesoraSeriesofNaNvaluesforaDataFrameParameters:wheredateorarray-likeofdatesDate(s)beforewhichthelastrow(s)arereturned.subsetstrorarray-likeofstr,defaultNoneForDataFrame,ifnotNone,onlyusethesecolumnstocheckforNaNs.Returns:scalar,Series,orDataFrameThereturncanbe:scalar:whenselfisaSeriesandwhereisascalarSeries:whenselfisaSeriesandwhereisanarray-like,orwhenselfisaDataFrameandwhereisascalarDataFrame:whenselfisaDataFrameandwhereisanarray-like245-2、参数245-2-1、where(必须):单个索引值或索引值的列表,指定要查找的索引位置,如果是单个索引值,则返回该位置之前的最新有效值;如果是索引值的列表,则对每个索引值执行查找操作。245-2-2、subset(可选,默认值为None):列名或列名的列表(仅用于DataFrame),指定在DataFrame中应用查找操作的列,如果未指定,则默认使用所有列。245-3、功能 用于返回给定索引位置之前(或恰好在该位置)的最新有效值,它在处理时间序列数据时特别有用。245-4、返回值 返回给定索引位置之前的最新有效值,对于单个索引值,返回一个标量值;对于索引值的列表,返回一个包含查找结果的Series。245-5、说明 无245-6、用法245-6-1、数据准备无245-6-2、代码示例#245、pandas.Series.asof方法importpandasaspdimportnumpyasnp#创建一个包含缺失值的时间序列dates=pd.date_range('2024-01-01',periods=10,freq='D')values=[np.nan,1.2,np.nan,3.4,np.nan,np.nan,7.8,np.nan,9.0,np.nan]ts=pd.Series(values,index=dates)#使用asof方法找到指定日期之前的最新有效值print(ts.asof('2024-01-05'))#使用asof方法填充缺失值filled_ts=ts.copy()filled_ts=filled_ts.fillna(method='ffill')print(filled_ts)245-6-3、结果输出#245、pandas.Series.asof方法#3.4#2024-01-01NaN#2024-01-021.2#2024-01-031.2#2024-01-043.4#2024-01-053.4#2024-01-063.4#2024-01-077.8#2024-01-087.8#2024-01-099.0#2024-01-109.0#Freq,dtype:float64二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
|
|