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

news2024/11/22 14:45:54

目录

一、用法精讲

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 0
Index 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 group

min: lowest rank in the group

max: highest rank in the group

first: ranks assigned in order they appear in the array

dense: like ‘min’, but rank always increases by 1 between groups.

numeric_onlybool, default False
For 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 values

top: assign lowest rank to NaN values

bottom: assign highest rank to NaN values

ascendingbool, default True
Whether or not the elements should be ranked in ascending order.

pctbool, default False
Whether or not to display the returned rankings in percentile form.

Returns:
same type as caller
Return 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 pd
data = 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 pd
data = 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 argument

Parameters:
axis{index (0)}
For Series this parameter is unused and defaults to 0.

Warning

The 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 True
Exclude NA/null values. If an entire row/column is NA, the result will be NA.

ddofint, default 1
Delta Degrees of Freedom. The divisor used in calculations is N - ddof, where N represents the number of elements.

numeric_onlybool, default False
Include 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 True
Exclude NA/null values when computing the result.

numeric_onlybool, default False
Include only float, int, boolean columns. Not implemented for Series.

**kwargs
Additional 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 pd
import numpy as np
# 生成一个包含随机数的DataFrame
data = {
    '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 pd
import numpy as np
import matplotlib.pyplot as plt
# 生成带有异常值的分布
data_with_outliers = np.concatenate([np.random.normal(0, 1, 1000), [10, 12, 15]])
# 创建DataFrame
df_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 pd
import numpy as np
from 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 pd
import 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 pd
import numpy as np
from 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 pd
import numpy as np
import 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.

Warning

The 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 True
Exclude NA/null values. If an entire row/column is NA, the result will be NA.

ddofint, default 1
Delta Degrees of Freedom. The divisor used in calculations is N - ddof, where N represents the number of elements.

numeric_onlybool, default False
Include only float, int, boolean columns. Not implemented for Series.

Returns:
scalar or Series (if level specified)
Notes

To 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.

Warning

The 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 True
Exclude NA/null values when computing the result.

numeric_onlybool, default False
Include only float, int, boolean columns. Not implemented for Series.

min_countint, default 0
The required number of valid values to perform the operation. If fewer than min_count non-NA values are present the result will be NA.

**kwargs
Additional 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
# 创建一个包含销售数据的Series
sales = pd.Series([200, 300, 150, 400, 250])
# 计算总销售额
total_sales = sales.sum()
print(f"总销售额: {total_sales}")

# 180-2、缺失值处理
import pandas as pd
import numpy as np
# 创建一个包含缺失值的Series
data = pd.Series([10, 20, np.nan, 40, 50])
# 计算总和,跳过缺失值
total_sum = data.sum(skipna=True)
print(f"总和(跳过缺失值): {total_sum}")

# 180-3、条件过滤后求和
import pandas as pd
# 创建一个包含产品销售数据的Series
sales = 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_B
print(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 pd
import numpy as np
# 创建一个包含大量数据的Series
large_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、博客个人主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1954086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】数组名的不同情况

前言 在C语言中,数组名的行为在不同的上下文中有细微的区别。数组名本质上是一个指向数组第一个元素的指针,但在某些情况下,它的行为会有所不同。以下是一些关键点,帮助你理解数组名在什么情况下代表第一个元素,什么情…

前端江湖:从菜鸟到大侠的修炼手册

在这个数字编织的梦幻世界里,前端,这个听起来就带着几分仙气与神秘感的词汇,实则是每一位互联网探险家手中的魔法杖。它不仅连接着代码的冰冷逻辑与用户的炽热情感,更在无数次的点击与滑动间,绘制出一幅幅绚丽多彩的交…

智慧港口整体解决方案

1. 智慧港口概况与建设意义 智慧港口建设对创新驱动和转型发展具有重要推动作用,是港口发展的主要方向。它通过物联网、移动互联网、云计算、人工智能等高新技术与港口功能的融合,提升港口的智能化和信息化水平,对国家可持续发展具有重要意义…

一键将桌面资料存到d盘的工具,小巧、绿色、免费、免安装

为了提升我们的系统稳定性以及资料的安全性,建议大家将电脑桌面的资料默认路径设置为D盘或其他磁盘,这样不仅会减少系统盘的占用空间,在系统盘出现故障时我们还可以通过pe工具备份桌面的资料。虽然我们也可以通过一些操作来修改桌面文件以及我…

视频主题Qinmei 3.0视频站源码_WordPress影视视频主题/附详细安装教程

Qinmei 3.0主题主要是将 wordpress 改造成纯 api 的站点,以便实现前后端分离的技术栈,目前的进度已经大致完成,唯一的问题就是需要安装 JWT token 插件。 功能介绍: 支持豆瓣以及 bangumi 的一键获取信息, 豆瓣 api 目前使用的是…

科普文:分布式架构中的三高:高并发、高性能、高可用

关于高并发 高并发场景 互联网应用以及云计算的普及,使得架构设计和软件技术的关注点从如何实现复杂的业务逻 辑,转变为如何满足大量用户的高并发访问请求。 一个简单的计算处理过程,如果一旦面对大量的用户访问,整个技术挑战就…

Java1.0标准之重要特性及用法实例(十一)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列…

aspeed 2600适配u-boot/kernel

1.说明 本文采取aspeed sdk v09.01版本来适配自己的实际的硬件开发平台。!!非采取qemu模拟方式!! 2.采用的镜像文件 2.1 采用网站编译好的镜像 采用网站: https://github.com/AspeedTech-BMC/openbmc/releases的文件: 1.ast2600-default-515-obmc.tar.gz.选择里面的文件ima…

【初阶数据结构篇】单链表的实现(赋源码)

文章目录 单链表的实现代码位置概念与结构概念:结构: 链表的性质链表的分类单链表的实现单链表的创建和打印及销毁单链表的创建单链表的打印单链表的销毁 单链表的插入单链表头插单链表尾插单链表在指定位置之前插入数据单链表在指定位置之后插入数据 单…

ChatTTS(文本转语音) 一键本地安装爆火语音模型

想不想让你喜欢的文章,有着一个动听的配音,没错,他就可以实现。 ChatTTS 是一款专为对话场景设计的文本转语音模型,例如 LLM 助手对话任务。它支持英语和中文两种语言。 当下爆火模型,在Git收获23.5k的Star&#xff…

Flink-CDC解析(第47天)

前言 本文主要概述了Flink-CDC. 1. CDC 概述 1.1 什么是CDC? CDC是(Change Data Capture 变更数据获取)的简称 ,在广义的概念上,只要是能捕获数据变更的技术,都可以称之为 CDC。 核心思想是&#xff0c…

【C语言】【数据结构】二分查找(数组的练习)

目录 一、什么是二分查找 二、算法思想 2.1、概述 2.2、举例 (1)查找3(数组里面存在的数) (2)查找12(数组里面不存在的数) 三、代码实现 四、计算mid公式的优化 一、…

二阶段测试:

二阶段测试: 架构: 服务器类型部署组件ip地址DR1调度服务器 主(ha01)KeepalivedLVS-DR192.168.60.30DR2调度服务器 备 (ha02)KeepalivedLVS-DR192.168.60.40web1节点服务器 (slave01)NginxTomcatMySQL 备MHA managerMHA node192.…

Open3D 点云按xyz轴等距切片

目录 一、概述 1.1原理 1.2实现步骤 1.3应用 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2按x轴切片 3.3按y轴切片 3.4按z轴切片 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总&#xff…

计算机网络通信基础概念

目录 1、网络通信的本质 2、网络的发展 3、网络协议(TCP\IP协议) 3.1 协议实现通信的原理 3.2 协议的具体概念 3.3 协议的模型 4、数据链路层 5、网络协议栈和操作系统的关系 6、网络协议通信过程 6.1 通信过程的封装与解包 7、以太网通信…

助力樱桃智能自动化采摘,基于嵌入式端超轻量级模型LeYOLO全系列【n/s/m/l】参数模型开发构建果园种植采摘场景下樱桃成熟度智能检测识别系统

随着科技的飞速发展,人工智能(AI)技术已经渗透到我们生活的方方面面,从智能家居到自动驾驶,再到医疗健康,其影响力无处不在。然而,当我们把目光转向中国的农业领域时,一个令人惊讶的…

【AI】SpringCloudAlibaba AI 学习

Spring Cloud Alibaba AI 简介 Spring Cloud Alibaba AI 以 Spring AI 为基础,并在此基础上提供阿里云通义系列大模型全面适配,让用户在 5 分钟内开发基于通义大模型的 Java AI 应用。 官网: https://sca.aliyun.com/ https://sca.aliyun.co…

理解 HTTP 请求中 Query 和 Body 的异同

本文将深入探讨HTTP请求中的两个关键要素:查询参数(Query)和请求体(Body)。我们将阐明它们之间的差异,并讨论在何种情况下使用每一种。 HTTP 请求概述 HTTP 请求是客户端(如浏览器&#xff09…

知道秘密的人

一、力扣题目: 二、理论分析 由于 天数是一天一天变化的,用 数组的下标代表天数i, 数组中的 数据代表知道秘密在第i天的人数 假设在某个人在知道秘密的第3天开始传播,在第6天忘记,由于 第1天1个人发现了秘密 spread为能传播秘密的…