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

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

[复制链接]

2万

主题

0

回帖

7万

积分

超级版主

积分
70607
发表于 2024-9-10 02:06:06 | 显示全部楼层 |阅读模式
目录一、用法精讲176、pandas.Series.rank方法176-1、语法176-2、参数176-3、功能176-4、返回值176-5、说明176-6、用法176-6-1、数据准备176-6-2、代码示例176-6-3、结果输出177、pandas.Series.sem方法177-1、语法177-2、参数177-3、功能177-4、返回值177-5、说明177-6、用法177-6-1、数据准备177-6-2、代码示例177-6-3、结果输出178、pandas.Series.skew方法178-1、语法178-2、参数178-3、功能178-4、返回值178-5、说明178-6、用法178-6-1、数据准备178-6-2、代码示例178-6-3、结果输出179、pandas.Series.std方法179-1、语法179-2、参数179-3、功能179-4、返回值179-5、说明179-6、用法179-6-1、数据准备179-6-2、代码示例179-6-3、结果输出180、pandas.Series.sum方法180-1、语法180-2、参数180-3、功能180-4、返回值180-5、说明180-6、用法180-6-1、数据准备180-6-2、代码示例180-6-3、结果输出二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页一、用法精讲176、pandas.Series.rank方法176-1、语法#176、pandas.Series.rank方法pandas.Series.rank(axis=0,method='average',numeric_only=False,na_option='keep',ascending=True,pct=False)Computenumericaldataranks(1throughn)alongaxis.Bydefault,equalvaluesareassignedarankthatistheaverageoftheranksofthosevalues.Parameters:axis{0or‘index’,1or‘columns’},default0Indextodirectranking.ForSeriesthisparameterisunusedanddefaultsto0.method{‘average’,‘min’,‘max’,‘first’,‘dense’},default‘average’Howtorankthegroupofrecordsthathavethesamevalue(i.e.ties):average:averagerankofthegroupmin:lowestrankinthegroupmax:highestrankinthegroupfirst:ranksassignedinordertheyappearinthearraydense:like‘min’,butrankalwaysincreasesby1betweengroups.numeric_onlybool,defaultFalseForDataFrameobjects,rankonlynumericcolumnsifsettoTrue.Changedinversion2.0.0:Thedefaultvalueofnumeric_onlyisnowFalse.na_option{‘keep’,‘top’,‘bottom’},default‘keep’HowtorankNaNvalues:keep:assignNaNranktoNaNvaluestop:assignlowestranktoNaNvaluesbottom:assignhighestranktoNaNvaluesascendingbool,defaultTrueWhetherornottheelementsshouldberankedinascendingorder.pctbool,defaultFalseWhetherornottodisplaythereturnedrankingsinpercentileform.Returns:sametypeascallerReturnaSeriesorDataFramewithdataranksasvalues.176-2、参数176-2-1、axis(可选,默认值为0):表示对数据的行进行排名,对Series来说,这个参数一般不适用,因为Series只有一维。176-2-2、method(可选,默认值为'average'):指定排名的方式,可选值有:'average':同分的值取平均排名。'min':同分的值取最小排名。'max':同分的值取最大排名。'first':按出现顺序排名。'dense':类似于最小排名,但排名是连续的。176-2-3、numeric_only(可选,默认值为False):如果为True,将只对数值数据进行排名。176-2-4、na_option(可选,默认值为'keep'):处理缺失值的方式,可取值为:'keep':将缺失值保持在原位置。'top':将缺失值排到最前面。'bottom':将缺失值排到最后。176-2-5、ascending(可选,默认值为True):如果为False,则进行降序排名。176-2-6、pct(可选,默认值为False):如果为True,将返回排名的百分比,而不是具体排名。176-3、功能        为Series中的每个值分配一个排名,它能够处理值的顺序,并为重复值提供不同的排名方式。具体来说,rank方法可以根据选择的排名方式和其他参数,返回每个值的排名,适用于数据分析和统计计算。176-4、返回值        返回一个新的Series,其索引与原始Series相同,但值代表原始数据中每个元素的排名。176-5、说明    无176-6、用法176-6-1、数据准备无176-6-2、代码示例#176、pandas.Series.rank方法#176-1、无重复值importpandasaspddata=pd.Series([3,5,6,8,10,11,24])ranked_data=data.rank(method='average',ascending=True)print(ranked_data,end='\n\n')#176-2、有重复值importpandasaspddata=pd.Series([3,5,6,8,10,10,11,24])ranked_data=data.rank(method='average',ascending=True)print(ranked_data)176-6-3、结果输出#176、pandas.Series.rank方法#176-1、无重复值#01.0#12.0#23.0#34.0#45.0#56.0#67.0#dtype:float64#176-2、有重复值#01.0#12.0#23.0#34.0#45.5#55.5#67.0#78.0#dtype:float64177、pandas.Series.sem方法177-1、语法#177、pandas.Series.sem方法pandas.Series.sem(axis=None,skipna=True,ddof=1,numeric_only=False,**kwargs)Returnunbiasedstandarderrorofthemeanoverrequestedaxis.NormalizedbyN-1bydefault.ThiscanbechangedusingtheddofargumentParameters:axis{index(0)}ForSeriesthisparameterisunusedanddefaultsto0.WarningThebehaviorofDataFrame.semwithaxis=Noneisdeprecated,inafutureversionthiswillreduceoverbothaxesandreturnascalarToretaintheoldbehavior,passaxis=0(ordonotpassaxis).skipnabool,defaultTrueExcludeNA/nullvalues.Ifanentirerow/columnisNA,theresultwillbeNA.ddofint,default1DeltaDegreesofFreedom.ThedivisorusedincalculationsisN-ddof,whereNrepresentsthenumberofelements.numeric_onlybool,defaultFalseIncludeonlyfloat,int,booleancolumns.NotimplementedforSeries.Returns:scalarorSeries(iflevelspecified)177-2、参数177-2-1、axis(可选,默认值为None):用于指定计算的轴,对于Series来说,通常不需要指定。177-2-2、skipna(可选,默认值为True):布尔值,如果为True,则在计算标准误时会忽略NaN值;如果为False,则遇到NaN值会返回NaN。177-2-3、ddof(可选,默认值为1):DeltaDegreesofFreedom,样本的自由度,在计算标准误时,通常设置为1,表示使用样本标准差;设置为0将使用总体标准差。177-2-4、numeric_only(可选,默认值为False):布尔值,如果为True,则仅计算数值类型的数据;如果为False,则包括所有类型。如果数据中含有非数值类型的列且numeric_only为False,则可能导致类型错误。177-2-5、**kwargs(可选):其他关键字参数,用于后续扩展功能做预留。177-3、功能        用于计算系列的标准误(StandardErroroftheMean),这是数据分析中常用的一种统计指标,反映了样本均值的可靠性。177-4、返回值        返回一个标量值,表示系列的标准误。177-5、说明        使用场景:177-5-1、医学研究:在临床试验或医学研究中,研究人员通常需要计算一组病人测量数据(如血压、胆固醇水平等)的均值及其标准误,以评估治疗效果的稳定性和一致性。177-5-2、市场调查:在市场调研中,调查员可能会收集顾客满意度评分,通过计算评分的均值和标准误,来判断消费者对产品的总体反馈是否可靠。177-5-3、实验数据分析:在科学实验中,研究人员可能会收集多次实验的结果,并计算这些结果的均值和标准误,以了解实验测量的一致性和变异性。177-5-4、金融分析:在投资和金融分析中,分析师可能会计算某类资产收益率的均值和标准误,从而评估投资的风险和潜在回报。177-5-5、教育评估:在教育测评中,教师可能会计算学生成绩的均值和标准误,以分析班级整体表现的可靠性,帮助改进教学策略。177-5-6、气候和环境数据:在气象学和环境科学中,研究人员可能会计算某一时间段内气温、降水量的数据均值和标准误,以评估气候变化的趋势和异常。177-6、用法177-6-1、数据准备无177-6-2、代码示例#177、pandas.Series.sem方法#177-1、医学研究importpandasaspd#假设我们有一组病人的血压数据blood_pressure=pd.Series([120,115,130,125,132])#计算血压均值和标准误mean_bp=blood_pressure.mean()sem_bp=blood_pressure.sem()print(f"血压均值:{mean_bp:.2f}")print(f"血压标准误:{sem_bp:.2f}",end='\n\n')#177-2、市场调查importpandasaspd#顾客满意度评分(1到5分)satisfaction_scores=pd.Series([4,5,3,4,5,4,2,5])#计算满意度均值和标准误mean_score=satisfaction_scores.mean()sem_score=satisfaction_scores.sem()print(f"顾客满意度均值:{mean_score:.2f}")print(f"顾客满意度标准误:{sem_score:.2f}",end='\n\n')#177-3、实验数据分析importpandasaspd#假设我们有多次实验的结果experiment_results=pd.Series([1.2,1.5,1.4,1.3,1.6])#计算实验结果的均值和标准误mean_result=experiment_results.mean()sem_result=experiment_results.sem()print(f"实验结果均值:{mean_result:.2f}")print(f"实验结果标准误:{sem_result:.2f}",end='\n\n')#177-4、金融分析importpandasaspd#假设我们有某个投资组合的月收益率monthly_returns=pd.Series([0.05,0.02,-0.01,0.04,0.03])#计算收益率的均值和标准误mean_return=monthly_returns.mean()sem_return=monthly_returns.sem()print(f"月收益率均值:{mean_return:.2f}")print(f"月收益率标准误:{sem_return:.2f}",end='\n\n')#177-5、教育评估importpandasaspd#学生考试成绩exam_scores=pd.Series([80,90,85,70,95])#计算考试成绩的均值和标准误mean_score=exam_scores.mean()sem_score=exam_scores.sem()print(f"考试成绩均值:{mean_score:.2f}")print(f"考试成绩标准误:{sem_score:.2f}",end='\n\n')#177-6、气候和环境数据importpandasaspd#假设我们有连续几天的气温数据temperature_data=pd.Series([22,24,19,23,21,20])#计算气温的均值和标准误mean_temp=temperature_data.mean()sem_temp=temperature_data.sem()print(f"气温均值:{mean_temp:.2f}°C")print(f"气温标准误:{sem_temp:.2f}°C")177-6-3、结果输出#177、pandas.Series.sem方法#177-1、医学研究#血压均值:124.40#血压标准误:3.14#177-2、市场调查#顾客满意度均值:4.00#顾客满意度标准误:0.38#177-3、实验数据分析#实验结果均值:1.40#实验结果标准误:0.07#177-4、金融分析#月收益率均值:0.03#月收益率标准误:0.01#177-5、教育评估#考试成绩均值:84.00#考试成绩标准误:4.30#177-6、气候和环境数据#气温均值:21.50°C#气温标准误:0.76°C178、pandas.Series.skew方法178-1、语法#178、pandas.Series.skew方法pandas.Series.skew(axis=0,skipna=True,numeric_only=False,**kwargs)Returnunbiasedskewoverrequestedaxis.NormalizedbyN-1.Parameters:axis{index(0)}Axisforthefunctiontobeappliedon.ForSeriesthisparameterisunusedanddefaultsto0.ForDataFrames,specifyingaxis=Nonewillapplytheaggregationacrossbothaxes.Newinversion2.0.0.skipnabool,defaultTrueExcludeNA/nullvalueswhencomputingtheresult.numeric_onlybool,defaultFalseIncludeonlyfloat,int,booleancolumns.NotimplementedforSeries.**kwargsAdditionalkeywordargumentstobepassedtothefunction.Returns:scalarorscalar178-2、参数178-2-1、axis(可选,默认值为0):用于指定计算的轴,对于Series来说,通常不需要指定。178-2-2、skipna(可选,默认值为True):布尔值,如果为True,则在计算偏度时会跳过缺失值;如果为False,则包含缺失值计算。178-2-3、numeric_only(可选,默认值为False):布尔值,如果为True,则只对数值类型的数据进行计算,非数字类型的数据将被忽略。178-2-4、**kwargs(可选):其他关键字参数,为后续扩展功能做预留。178-3、功能        用于计算序列的偏度(skewness),偏度是衡量数据分布不对称程度的统计量。178-4、返回值        返回一个浮点数(float),具体取值如下:0:数据分布是完全对称的。正值:数据分布的右侧较长,表示数据在左边集中,即右偏。负值:数据分布的左侧较长,表示数据在右边集中,即左偏。178-5、说明        使用场景:178-5-1、数据探索与分析:在数据分析过程中,了解数据的分布特征是非常重要的,通过计算偏度,可以帮助分析师确定数据是否呈现对称分布,进而影响后续的数据处理和建模策略。178-5-2、异常值检测:偏度可以指示数据是否存在异常值或极端值。例如,右偏分布可能意味着存在较大的极端值,左偏分布则相反,识别这些情况可以帮助清洗数据,确保模型训练的有效性。178-5-3、特征工程:在构建机器学习模型时,特征的分布会影响模型的性能。对于存在偏度的特征,可能需要进行转换(例如对数变换或平方根变换)以使其更接近正态分布,改善模型的效果。178-5-4、金融与经济学分析:在金融领域,收益率分布的偏度能够反映市场的风险特征。例如,从投资收益的偏度可以判断资产的风险特性,帮助投资者做出更明智的决策。178-5-5、假设检验:在某些假设检验(如t检验和ANOVA)中,通常假定数据服从正态分布。偏度的计算可以帮助验证这一假设,确保所选的统计方法的适用性。178-5-6、报告与可视化:在生成数据分析报告或可视化时,展示偏度值可以作为数据分布特征的一部分,增强信息的传达效果。178-6、用法178-6-1、数据准备无178-6-2、代码示例#178、pandas.Series.skew方法#178-1、数据探索与分析importpandasaspdimportnumpyasnp#生成一个包含随机数的DataFramedata={'A':np.random.normal(loc=0,scale=1,size=1000),'B':np.random.exponential(scale=1,size=1000)#右偏分布}df=pd.DataFrame(data)#计算偏度skewness_A=df['A'].skew()skewness_B=df['B'].skew()print(f"ColumnAskewness:{skewness_A}")print(f"ColumnBskewness:{skewness_B}",end='\n\n')#178-2、异常值检测importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt#生成带有异常值的分布data_with_outliers=np.concatenate([np.random.normal(0,1,1000),[10,12,15]])#创建DataFramedf_outliers=pd.DataFrame({'C':data_with_outliers})#计算偏度skewness_C=df_outliers['C'].skew()#绘制直方图plt.hist(df_outliers['C'],bins=30,color='skyblue',edgecolor='black')plt.title(f'HistogramofC(Skewness:{skewness_C:.2f})')plt.xlabel('Value')plt.ylabel('Frequency')plt.show()#178-3、特征工程importpandasaspdimportnumpyasnpfromsklearn.preprocessingimportPowerTransformer#创建一个带偏度的特征df_feature=pd.DataFrame({'D':np.random.exponential(scale=1,size=1000)})#计算原始特征的偏度original_skewness=df_feature['D'].skew()#使用PowerTransformer进行变换pt=PowerTransformer()df_transformed=pd.DataFrame(pt.fit_transform(df_feature),columns=['D_transformed'])#计算变换后特征的偏度transformed_skewness=df_transformed['D_transformed'].skew()print(f"Originalskewness:{original_skewness:.2f}")print(f"Transformedskewness:{transformed_skewness:.2f}",end='\n\n')#178-4、金融与经济学分析importpandasaspdimportnumpyasnp#假设我们有一些模拟的资产收益率数据returns=pd.Series(np.random.normal(0,1,1000))#计算收益率的偏度skewness_returns=returns.skew()print(f"Skewnessofassetreturns:{skewness_returns:.2f}",end='\n\n')#178-5、假设检验importpandasaspdimportnumpyasnpfromscipy.statsimportshapiro#创建一个样本数据sample_data=pd.Series(np.random.normal(0,1,100))#计算偏度sample_skewness=sample_data.skew()#进行Shapiro-Wilk假设检验stat,p_value=shapiro(sample_data)print(f"Sampleskewness:{sample_skewness:.2f}")print(f"Shapiro-WilkTestStatistic:{stat:.3f},p-value:{p_value:.3f}",end='\n\n')#178-6、报告与可视化importpandasaspdimportnumpyasnpimportmatplotlib.pyplotasplt#创建一个样本数据example_data=pd.Series(np.random.poisson(lam=3,size=1000))#计算偏度example_skewness=example_data.skew()#绘制直方图和偏度plt.hist(example_data,bins=30,color='lightgreen',edgecolor='black')plt.axvline(example_data.mean(),color='red',linestyle='dashed',linewidth=1,label='Mean')plt.axvline(example_data.median(),color='blue',linestyle='dashed',linewidth=1,label='Median')plt.title(f'HistogramofExampleData(Skewness:{example_skewness:.2f})')plt.xlabel('Value')plt.ylabel('Frequency')plt.legend()plt.show()178-6-3、结果输出#178、pandas.Series.skew方法#178-1、数据探索与分析#ColumnAskewness:-0.04151967450030536#ColumnBskewness:1.989655358177879#178-2、异常值检测见图1#178-3、特征工程#Originalskewness:2.33#Transformedskewness:0.12#178-4、金融与经济学分析#Skewnessofassetreturns:-0.01#178-5、假设检验#Sampleskewness:0.25#Shapiro-WilkTestStatistic:0.991,p-value:0.756#178-6、报告与可视化见图2 图1:图2: 179、pandas.Series.std方法179-1、语法#179、pandas.Series.std方法pandas.Series.std(axis=None,skipna=True,ddof=1,numeric_only=False,**kwargs)Returnsamplestandarddeviationoverrequestedaxis.NormalizedbyN-1bydefault.Thiscanbechangedusingtheddofargument.Parameters:axis{index(0)}ForSeriesthisparameterisunusedanddefaultsto0.WarningThebehaviorofDataFrame.stdwithaxis=Noneisdeprecated,inafutureversionthiswillreduceoverbothaxesandreturnascalarToretaintheoldbehavior,passaxis=0(ordonotpassaxis).skipnabool,defaultTrueExcludeNA/nullvalues.Ifanentirerow/columnisNA,theresultwillbeNA.ddofint,default1DeltaDegreesofFreedom.ThedivisorusedincalculationsisN-ddof,whereNrepresentsthenumberofelements.numeric_onlybool,defaultFalseIncludeonlyfloat,int,booleancolumns.NotimplementedforSeries.Returns:scalarorSeries(iflevelspecified)NotesTohavethesamebehaviourasnumpy.std,useddof=0(insteadofthedefaultddof=1)179-2、参数179-2-1、axis(可选,默认值为None):用于指定计算的轴,对于Series来说,通常不需要指定。179-2-2、skipna(可选,默认值为True):布尔值,如果为True,则在计算标准误时会忽略NaN值;如果为False,则遇到NaN值会返回NaN。179-2-3、ddof(可选,默认值为1):DeltaDegreesofFreedom,样本的自由度,在计算标准误时,通常设置为1,表示使用样本标准差;设置为0将使用总体标准差。179-2-4、numeric_only(可选,默认值为False):布尔值,如果为True,则仅计算数值类型的数据;如果为False,则包括所有类型。如果数据中含有非数值类型的列且numeric_only为False,则可能导致类型错误。179-2-5、**kwargs(可选):其他关键字参数,用于后续扩展功能做预留。179-3、功能        计算Series中数据的标准差,标准差是衡量数据分布离均值的远近程度的指标,反映了数据的离散程度。具体来讲,如果标准差小,说明数据点相对集中;如果标准差大,说明数据点分散得比较开。179-4、返回值179-4-1、返回一个浮点数,表示Series中数值数据的标准差。179-4-2、如果Series中全部值为NaN或者没有有效数值,返回NaN。179-5、说明        使用场景:179-5-1、数据分析:在数据分析过程中,了解数据的分布特征非常重要,标准差可以帮助分析师评估数据的离散程度,从而更好地理解数据的波动性。179-5-2、质量控制:在生产和质量管理中,监控产品的测量值并计算标准差,可用于判断生产过程的稳定性和一致性,较低的标准差表示生产过程的一致性较高。179-5-3、金融分析:在金融市场中,投资者常常利用标准差来衡量投资回报的风险,高标准差表明投资回报的不确定性大,可能意味着更高的风险。179-5-4、实验数据处理:在科学实验中,标准差用于描述实验数据的测量误差和结果的可靠性,通过计算标准差,科研人员可以评估实验结果的变异程度。179-5-5、机器学习:在特征工程中,计算标准差有助于进行数据预处理,识别和处理离群值,此外,标准差可以作为特征之一用于模型训练和评估。179-5-6、健康研究:在医学和公共卫生领域,研究者通过计算健康指标(如体重、血压等)的标准差来评估人群的健康状况,以及不同人群之间的差异。179-6、用法179-6-1、数据准备无179-6-2、代码示例#179、pandas.Series.std方法#179-1、数据分析importpandasaspd#创建一个示例数据集data={'scores':[78,85,90,93,88,95,80]}df=pd.DataFrame(data)#计算分数的标准差std_dev=df['scores'].std()print(f"分数的标准差为:{std_dev}")#179-2、质量控制importpandasaspd#生产过程中测量的产品尺寸measurements=[10.1,10.2,10.1,10.3,10.5,10.2,10.4]df=pd.DataFrame(measurements,columns=['size'])#计算尺寸的标准差std_dev=df['size'].std()print(f"产品尺寸的标准差为:{std_dev}")#179-3、金融分析importpandasaspd#创建一个示例数据集,表示股价每日收益returns=[0.02,0.03,-0.01,0.04,0.01,-0.02,0.03]df=pd.DataFrame(returns,columns=['returns'])#计算每日收益的标准差std_dev=df['returns'].std()print(f"每日收益的标准差为:{std_dev}")#179-4、实验数据处理importpandasaspd#每次实验的测量结果results=[5.2,5.3,5.1,5.4,5.3,5.5]df=pd.DataFrame(results,columns=['experiment'])#计算实验结果的标准差std_dev=df['experiment'].std()print(f"实验结果的标准差为:{std_dev}")#179-5、机器学习importpandasaspd#创建特征数据集data={'feature1':[1.2,1.5,1.1,1.4,1.3],'feature2':[2.1,2.0,2.2,2.4,2.3]}df=pd.DataFrame(data)#计算每个特征的标准差std_dev_feature1=df['feature1'].std()std_dev_feature2=df['feature2'].std()print(f"特征1的标准差为:{std_dev_feature1}")print(f"特征2的标准差为:{std_dev_feature2}")#179-6、健康研究importpandasaspd#创建一个示例数据集,表示一组人的体重(单位:kg)weights=[65,70,68,72,64,66,69]df=pd.DataFrame(weights,columns=['weight'])#计算体重的标准差std_dev=df['weight'].std()print(f"体重的标准差为:{std_dev}")179-6-3、结果输出#179、pandas.Series.std方法#179-1、数据分析#分数的标准差为:6.377042156569663#179-2、质量控制#产品尺寸的标准差为:0.1511857892036912#179-3、金融分析#每日收益的标准差为:0.022253945610567476#179-4、实验数据处理#实验结果的标准差为:0.14142135623730964#179-5、机器学习#特征1的标准差为:0.15811388300841892#特征2的标准差为:0.1581138830084189#179-6、健康研究#体重的标准差为:2.8702082220799308180、pandas.Series.sum方法180-1、语法#180、pandas.Series.sum方法pandas.Series.sum(axis=None,skipna=True,numeric_only=False,min_count=0,**kwargs)Returnthesumofthevaluesovertherequestedaxis.Thisisequivalenttothemethodnumpy.sum.Parameters:axis{index(0)}Axisforthefunctiontobeappliedon.ForSeriesthisparameterisunusedanddefaultsto0.WarningThebehaviorofDataFrame.sumwithaxis=Noneisdeprecated,inafutureversionthiswillreduceoverbothaxesandreturnascalarToretaintheoldbehavior,passaxis=0(ordonotpassaxis).Newinversion2.0.0.skipnabool,defaultTrueExcludeNA/nullvalueswhencomputingtheresult.numeric_onlybool,defaultFalseIncludeonlyfloat,int,booleancolumns.NotimplementedforSeries.min_countint,default0Therequirednumberofvalidvaluestoperformtheoperation.Iffewerthanmin_countnon-NAvaluesarepresenttheresultwillbeNA.**kwargsAdditionalkeywordargumentstobepassedtothefunction.Returns:scalarorscalar180-2、参数180-2-1、axis(可选,默认值为None):对于Series来说,axis参数不适用,主要用于DataFrame时指定轴的方向。180-2-2、skipna(可选,默认值为True):指示在计算总和时是否跳过缺失值(NaN),如果设置为False,则总和将在遇到NaN时为NaN。180-2-3、numeric_only(可选,默认值为False):若为True,只有数值类型的列才会被计算。如果是DataFrame,将忽略非数值类型的数据;对于Series,此参数通常不起作用。180-2-4、min_count(可选,默认值为0):计算总和所需的最小非NA/null值数量,若非NA值的数量少于min_count,则结果将为NaN。180-2-5、**kwargs(可选):其他关键字参数,用于后续扩展功能做预留。180-3、功能        计算Series中所有元素的总和,它会将系列中的数值元素相加,通常会跳过缺失值(NaN),除非指定不跳过,此外,它也可以根据参数设置的要求,返回特定条件下的计算结果。180-4、返回值        返回一个数值,表示总和。如果计算过程中所有元素都是缺失值(NaN)或者符合设置的条件不满足(如min_count参数),则返回结果为NaN。180-5、说明        使用场景:180-5-1、数据汇总:当需要对一组数值数据进行汇总统计时,可以使用sum()方法快速得出总和。例如,在财务数据分析中,可以计算一段时间内的总收入或总支出。180-5-2、缺失值处理:在数据清洗过程中,经常会遇到缺失值。使用sum()方法的skipna参数,可以灵活地选择是否包含缺失值进行计算,帮助分析数据的完整性。180-5-3、条件过滤后求和:结合布尔索引,可以先对数据进行过滤,再使用sum()方法计算满足特定条件的数据总和。例如,可以计算某一产品类别的总销量。180-5-4、时间序列分析:在处理时间序列数据时,常常需要计算一定时间段内的总和,例如每月的总销售额或每年的总收益。180-5-5、组合计算:在多重指标分析中,可能需要对多个Series的总和进行比较或组合运算sum()方法可以提供便利。180-5-6、数据报告生成:在生成数据报告或可视化时,常常需要提供一些基本的统计信息,包括总和,以展示数据的整体情况。180-5-7、性能优化:在进行高性能数据处理时,使用sum()方法可以利用Pandas内部优化,提升计算速度,尤其在处理大数据集时尤为重要。180-6、用法180-6-1、数据准备无180-6-2、代码示例#180、pandas.Series.sum方法#180-1、数据汇总importpandasaspd#创建一个包含销售数据的Seriessales=pd.Series([200,300,150,400,250])#计算总销售额total_sales=sales.sum()print(f"总销售额:{total_sales}")#180-2、缺失值处理importpandasaspdimportnumpyasnp#创建一个包含缺失值的Seriesdata=pd.Series([10,20,np.nan,40,50])#计算总和,跳过缺失值total_sum=data.sum(skipna=True)print(f"总和(跳过缺失值):{total_sum}")#180-3、条件过滤后求和importpandasaspd#创建一个包含产品销售数据的Seriessales=pd.Series([100,200,300,400],index=['A','B','A','B'])#计算产品'A'的总销售额a_total_sales=sales[sales.index=='A'].sum()print(f"产品A的总销售额:{a_total_sales}")#180-4、时间序列分析importpandasaspd#创建一个时间序列数据dates=pd.date_range('2023-01-01',periods=5)sales_data=pd.Series([100,150,200,250,300],index=dates)#计算月销售总和monthly_total=sales_data.sum()print(f"本月销售总和:{monthly_total}")#180-5、组合计算importpandasaspd#创建多个Series数据sales_A=pd.Series([100,200,300])sales_B=pd.Series([150,250,100])#计算各自的总和并组合total_A=sales_A.sum()total_B=sales_B.sum()combined_total=total_A+total_Bprint(f"产品A和B的总销售额:{combined_total}")#180-6、数据报告生成importpandasaspd#假设我们有一个数据框包含一些产品的销量data={'Product':['A','B','C'],'Sales':[300,150,200]}df=pd.DataFrame(data)#计算总销售额以生成报告total_sales=df['Sales'].sum()print(f"所有产品的总销售额:{total_sales}")#180-7、性能优化importpandasaspdimportnumpyasnp#创建一个包含大量数据的Serieslarge_series=pd.Series(np.random.rand(10**6))#计算总和total_sum=large_series.sum()print(f"大数据集的总和:{total_sum}")180-6-3、结果输出#180、pandas.Series.sum方法#180-1、数据汇总#总销售额:1300#180-2、缺失值处理#总和(跳过缺失值):120.0#180-3、条件过滤后求和#产品A的总销售额:400#180-4、时间序列分析#本月销售总和:1000#180-5、组合计算#产品A和B的总销售额:1100#180-6、数据报告生成#所有产品的总销售额:650#180-7、性能优化#大数据集的总和:499809.22077620646二、推荐阅读1、Python筑基之旅2、Python函数之旅3、Python算法之旅4、Python魔法之旅5、博客个人主页
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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