> 技术文档 > Python酷库之旅-第三方库Pandas(049)_the behavior of dataframe.sum with axis=none is de

Python酷库之旅-第三方库Pandas(049)_the behavior of dataframe.sum with axis=none is de

目录

一、用法精讲

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)Compute numerical data ranks (1 through n) along axis.By default, equal values are assigned a rank that is the average of the ranks of those values.Parameters:axis{0 or ‘index’, 1 or ‘columns’}, default 0Index to direct ranking. For Series this parameter is unused and defaults to 0.method{‘average’, ‘min’, ‘max’, ‘first’, ‘dense’}, default ‘average’How to rank the group of records that have the same value (i.e. ties):average: average rank of the groupmin: lowest rank in the groupmax: highest rank in the groupfirst: ranks assigned in order they appear in the arraydense: like ‘min’, but rank always increases by 1 between groups.numeric_onlybool, default FalseFor DataFrame objects, rank only numeric columns if set to True.Changed in version 2.0.0: The default value of numeric_only is now False.na_option{‘keep’, ‘top’, ‘bottom’}, default ‘keep’How to rank NaN values:keep: assign NaN rank to NaN valuestop: assign lowest rank to NaN valuesbottom: assign highest rank to NaN valuesascendingbool, default TrueWhether or not the elements should be ranked in ascending order.pctbool, default FalseWhether or not to display the returned rankings in percentile form.Returns:same type as callerReturn a Series or DataFrame with data ranks as values.
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、无重复值import pandas as pddata = 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、有重复值import pandas as pddata = 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、无重复值# 0 1.0# 1 2.0# 2 3.0# 3 4.0# 4 5.0# 5 6.0# 6 7.0# dtype: float64# 176-2、有重复值# 0 1.0# 1 2.0# 2 3.0# 3 4.0# 4 5.5# 5 5.5# 6 7.0# 7 8.0# dtype: float64
177、pandas.Series.sem方法
177-1、语法
# 177、pandas.Series.sem方法pandas.Series.sem(axis=None, skipna=True, ddof=1, numeric_only=False, **kwargs)Return unbiased standard error of the mean over requested axis.Normalized by N-1 by default. This can be changed using the ddof argumentParameters:axis{index (0)}For Series this parameter is unused and defaults to 0.WarningThe behavior of DataFrame.sem with axis=None is deprecated, in a future version this will reduce over both axes and return a scalar To retain the old behavior, pass axis=0 (or do not pass axis).skipnabool, default TrueExclude NA/null values. If an entire row/column is NA, the result will be NA.ddofint, default 1Delta Degrees of Freedom. The divisor used in calculations is N - ddof, where N represents the number of elements.numeric_onlybool, default FalseInclude only float, int, boolean columns. Not implemented for Series.Returns:scalar or Series (if level specified)
177-2、参数

177-2-1、axis(可选,默认值为None)用于指定计算的轴,对于Series来说,通常不需要指定。

177-2-2、skipna(可选,默认值为True)布尔值,如果为True,则在计算标准误时会忽略NaN值;如果为False,则遇到NaN值会返回NaN

177-2-3、ddof(可选,默认值为1)Delta Degrees of Freedom,样本的自由度,在计算标准误时,通常设置为1,表示使用样本标准差;设置为0将使用总体标准差。

177-2-4、numeric_only(可选,默认值为False)布尔值,如果为True,则仅计算数值类型的数据;如果为False,则包括所有类型。如果数据中含有非数值类型的列且numeric_onlyFalse,则可能导致类型错误。

177-2-5、**kwargs(可选)其他关键字参数,用于后续扩展功能做预留。

177-3、功能

        用于计算系列的标准误(Standard Error of the Mean),这是数据分析中常用的一种统计指标,反映了样本均值的可靠性。

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、医学研究import pandas as pd# 假设我们有一组病人的血压数据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、市场调查import pandas as pd# 顾客满意度评分(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、实验数据分析import pandas as pd# 假设我们有多次实验的结果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、金融分析import pandas as pd# 假设我们有某个投资组合的月收益率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、教育评估import pandas as pd# 学生考试成绩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、气候和环境数据import pandas as pd# 假设我们有连续几天的气温数据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 °C
178、pandas.Series.skew方法
178-1、语法
# 178、pandas.Series.skew方法pandas.Series.skew(axis=0, skipna=True, numeric_only=False, **kwargs)Return unbiased skew over requested axis.Normalized by N-1.Parameters:axis{index (0)}Axis for the function to be applied on. For Series this parameter is unused and defaults to 0.For DataFrames, specifying axis=None will apply the aggregation across both axes.New in version 2.0.0.skipnabool, default TrueExclude NA/null values when computing the result.numeric_onlybool, default FalseInclude only float, int, boolean columns. Not implemented for Series.**kwargsAdditional keyword arguments to be passed to the function.Returns:scalar or scalar
178-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、数据探索与分析import pandas as pdimport numpy as np# 生成一个包含随机数的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\"Column A skewness: {skewness_A}\")print(f\"Column B skewness: {skewness_B}\", end=\'\\n\\n\')# 178-2、异常值检测import pandas as pdimport numpy as npimport matplotlib.pyplot as plt# 生成带有异常值的分布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\'Histogram of C (Skewness: {skewness_C:.2f})\')plt.xlabel(\'Value\')plt.ylabel(\'Frequency\')plt.show()# 178-3、特征工程import pandas as pdimport numpy as npfrom sklearn.preprocessing import PowerTransformer# 创建一个带偏度的特征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\"Original skewness: {original_skewness:.2f}\")print(f\"Transformed skewness: {transformed_skewness:.2f}\", end=\'\\n\\n\')# 178-4、金融与经济学分析import pandas as pdimport numpy as np# 假设我们有一些模拟的资产收益率数据returns = pd.Series(np.random.normal(0, 1, 1000))# 计算收益率的偏度skewness_returns = returns.skew()print(f\"Skewness of asset returns: {skewness_returns:.2f}\", end=\'\\n\\n\')# 178-5、假设检验import pandas as pdimport numpy as npfrom scipy.stats import shapiro# 创建一个样本数据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\"Sample skewness: {sample_skewness:.2f}\")print(f\"Shapiro-Wilk Test Statistic: {stat:.3f}, p-value: {p_value:.3f}\", end=\'\\n\\n\')# 178-6、报告与可视化import pandas as pdimport numpy as npimport matplotlib.pyplot as plt# 创建一个样本数据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\'Histogram of Example Data (Skewness: {example_skewness:.2f})\')plt.xlabel(\'Value\')plt.ylabel(\'Frequency\')plt.legend()plt.show()
178-6-3、结果输出
# 178、pandas.Series.skew方法# 178-1、数据探索与分析# Column A skewness: -0.04151967450030536# Column B skewness: 1.989655358177879# 178-2、异常值检测见图1# 178-3、特征工程# Original skewness: 2.33# Transformed skewness: 0.12# 178-4、金融与经济学分析# Skewness of asset returns: -0.01# 178-5、假设检验# Sample skewness: 0.25# Shapiro-Wilk Test Statistic: 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)Return sample standard deviation over requested axis.Normalized by N-1 by default. This can be changed using the ddof argument.Parameters:axis{index (0)}For Series this parameter is unused and defaults to 0.WarningThe behavior of DataFrame.std with axis=None is deprecated, in a future version this will reduce over both axes and return a scalar To retain the old behavior, pass axis=0 (or do not pass axis).skipnabool, default TrueExclude NA/null values. If an entire row/column is NA, the result will be NA.ddofint, default 1Delta Degrees of Freedom. The divisor used in calculations is N - ddof, where N represents the number of elements.numeric_onlybool, default FalseInclude only float, int, boolean columns. Not implemented for Series.Returns:scalar or Series (if level specified)NotesTo have the same behaviour as numpy.std, use ddof=0 (instead of the default ddof=1)
179-2、参数

179-2-1、axis(可选,默认值为None)用于指定计算的轴,对于Series来说,通常不需要指定。

179-2-2、skipna(可选,默认值为True)布尔值,如果为True,则在计算标准误时会忽略NaN值;如果为False,则遇到NaN值会返回NaN

179-2-3、ddof(可选,默认值为1)Delta Degrees of Freedom,样本的自由度,在计算标准误时,通常设置为1,表示使用样本标准差;设置为0将使用总体标准差。

179-2-4、numeric_only(可选,默认值为False)布尔值,如果为True,则仅计算数值类型的数据;如果为False,则包括所有类型。如果数据中含有非数值类型的列且numeric_onlyFalse,则可能导致类型错误。

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、数据分析import pandas as pd# 创建一个示例数据集data = {\'scores\': [78, 85, 90, 93, 88, 95, 80]}df = pd.DataFrame(data)# 计算分数的标准差std_dev = df[\'scores\'].std()print(f\"分数的标准差为: {std_dev}\")# 179-2、质量控制import pandas as pd# 生产过程中测量的产品尺寸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、金融分析import pandas as pd# 创建一个示例数据集,表示股价每日收益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、实验数据处理import pandas as pd# 每次实验的测量结果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、机器学习import pandas as pd# 创建特征数据集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、健康研究import pandas as pd# 创建一个示例数据集,表示一组人的体重(单位: 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.8702082220799308
180、pandas.Series.sum方法
180-1、语法
# 180、pandas.Series.sum方法pandas.Series.sum(axis=None, skipna=True, numeric_only=False, min_count=0, **kwargs)Return the sum of the values over the requested axis.This is equivalent to the method numpy.sum.Parameters:axis{index (0)}Axis for the function to be applied on. For Series this parameter is unused and defaults to 0.WarningThe behavior of DataFrame.sum with axis=None is deprecated, in a future version this will reduce over both axes and return a scalar To retain the old behavior, pass axis=0 (or do not pass axis).New in version 2.0.0.skipnabool, default TrueExclude NA/null values when computing the result.numeric_onlybool, default FalseInclude only float, int, boolean columns. Not implemented for Series.min_countint, default 0The required number of valid values to perform the operation. If fewer than min_count non-NA values are present the result will be NA.**kwargsAdditional keyword arguments to be passed to the function.Returns:scalar or scalar
180-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、数据汇总import pandas as pd# 创建一个包含销售数据的Seriessales = pd.Series([200, 300, 150, 400, 250])# 计算总销售额total_sales = sales.sum()print(f\"总销售额: {total_sales}\")# 180-2、缺失值处理import pandas as pdimport numpy as np# 创建一个包含缺失值的Seriesdata = pd.Series([10, 20, np.nan, 40, 50])# 计算总和,跳过缺失值total_sum = data.sum(skipna=True)print(f\"总和(跳过缺失值): {total_sum}\")# 180-3、条件过滤后求和import pandas as pd# 创建一个包含产品销售数据的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、时间序列分析import pandas as pd# 创建一个时间序列数据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、组合计算import pandas as pd# 创建多个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、数据报告生成import pandas as pd# 假设我们有一个数据框包含一些产品的销量data = {\'Product\': [\'A\', \'B\', \'C\'], \'Sales\': [300, 150, 200]}df = pd.DataFrame(data)# 计算总销售额以生成报告total_sales = df[\'Sales\'].sum()print(f\"所有产品的总销售额: {total_sales}\")# 180-7、性能优化import pandas as pdimport numpy as np# 创建一个包含大量数据的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、博客个人主页