目录
一、用法精讲
166、pandas.Series.max方法
166-1、语法
166-2、参数
166-3、功能
166-4、返回值
166-5、说明
166-6、用法
166-6-1、数据准备
166-6-2、代码示例
166-6-3、结果输出
167、pandas.Series.mean方法
167-1、语法
167-2、参数
167-3、功能
167-4、返回值
167-5、说明
167-6、用法
167-6-1、数据准备
167-6-2、代码示例
167-6-3、结果输出
168、pandas.Series.median方法
168-1、语法
168-2、参数
168-3、功能
168-4、返回值
168-5、说明
168-6、用法
168-6-1、数据准备
168-6-2、代码示例
168-6-3、结果输出
169、pandas.Series.min方法
169-1、语法
169-2、参数
169-3、功能
169-4、返回值
169-5、说明
169-6、用法
169-6-1、数据准备
169-6-2、代码示例
169-6-3、结果输出
170、pandas.Series.mode方法
170-1、语法
170-2、参数
170-3、功能
170-4、返回值
170-5、说明
170-6、用法
170-6-1、数据准备
170-6-2、代码示例
170-6-3、结果输出
二、推荐阅读
1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
一、用法精讲
166、pandas.Series.max方法
166-1、语法
# 166、pandas.Series.max方法
pandas.Series.max(axis=0, skipna=True, numeric_only=False, **kwargs)
Return the maximum of the values over the requested axis.If you want the index of the maximum, use idxmax. This is the equivalent of the numpy.ndarray method argmax.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
166-2、参数
166-2-1、axis(可选,默认值为0): 指定在哪个轴上计算最大值,对于Series,通常这个参数是固定的,因为Series是一维的。
166-2-2、skipna(可选,默认值为True): 指定是否跳过NaN值,如果设置为True(默认情况),NaN值将被忽略,计算时只考虑非空值;如果设置为False,结果将是NaN,如果存在NaN值。
166-2-3、numeric_only(可选,默认值为False): 指定是否仅考虑数值类型的数据,如果设为True,非数值类型的数据将被排除在最大值计算之外;如果设为False,则所有类型的数据将被考虑。
166-2-4、**kwargs(可选): 其他关键字参数,以后可能用于扩展方法的功能。
166-3、功能
166-3-1、查找最大值: 提供了一个简单的方式来快速找到数据中的最大值。
166-3-2、选项灵活: 通过参数设置,用户可以根据需要选择是否考虑NaN值或限制计算的数据类型。
166-4、返回值
166-4-1、最大值: 如果Series中存在有效的数值,返回最大的数值。
166-4-2、NaN: 如果Series中的值都为NaN,并且skipna=True,则返回NaN。
166-4-3、数据类型: 返回值与Series中的数据类型一致,例如整数、浮点数等。
166-5、说明
使用场景:
166-5-1、数据分析:在数据分析中,快速找出某一列或某一特征的最大值,可以帮助分析人员了解数据的范围和分布。
166-5-2、图表可视化:在准备绘制图表时,了解最大值可以帮助设置合适的图表范围,以确保数据恰当地呈现。
166-5-3、异常值检测:当需要识别数据中的异常值时,获取最大值可以与其他统计测量(如均值和标准差)结合使用,帮助识别潜在的异常数据点。
166-5-4、时间序列分析:在时间序列数据中,可以用max方法来找出某一时间段内的最大值,这对趋势分析和预测都非常有用。
166-6、用法
166-6-1、数据准备
无
166-6-2、代码示例
# 166、pandas.Series.max方法
import pandas as pd
# 创建一个包含 None 值的示例 Series
data_with_none = pd.Series([1, 3, 5, 7, None])
# 计算最大值,默认情况下 skipna=True,忽略 NaN 值
max_value_default = data_with_none.max()
print(f"Max value (default, skip NaN): {max_value_default}")
# 计算非空值的最大值,显式设置 skipna=True
max_value_skipna = data_with_none.max(skipna=True)
print(f"Max value (skip NaN): {max_value_skipna}")
# 计算包括 NaN 的情况下的最大值
max_value_include_nan = data_with_none.max(skipna=False)
print(f"Max value (include NaN): {max_value_include_nan}")
# 创建一个包含混合类型数据的 Series
mixed_data = pd.Series([1, 'a', 3, None])
# 仅计算数值类型的最大值
# 使用 apply 方法配合 lambda 函数过滤出数值类型数据,然后计算最大值
max_numeric = mixed_data.apply(pd.to_numeric, errors='coerce').max()
print(f"Max numeric value (only numbers): {max_numeric}")
166-6-3、结果输出
# 166、pandas.Series.max方法
# Max value (default, skip NaN): 7.0
# Max value (skip NaN): 7.0
# Max value (include NaN): nan
# Max numeric value (only numbers): 3.0
167、pandas.Series.mean方法
167-1、语法
# 167、pandas.Series.mean方法
pandas.Series.mean(axis=0, skipna=True, numeric_only=False, **kwargs)
Return the mean of the values over the requested axis.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
167-2、参数
167-2-1、axis(可选,默认值为0):对Series无影响,仅对DataFrame中有效。
167-2-2、skipna(可选,默认值为True):是否跳过NaN值,如果设置为False,则如果Series中存在NaN值,返回值会是NaN。
167-2-3、numeric_only(可选,默认值为False):对Series无影响,仅在DataFrame中有意义。
167-2-4、**kwargs(可选):其他关键字参数,为后续扩展其他功能做预留。
167-3、功能
用于计算一个Pandas Series中数值数据的平均值(算术平均数)。
167-4、返回值
返回一个浮点数,表示Series中数值元素的平均值。如果Series中没有数值元素,或者所有元素都是NaN,那么返回值会是NaN。
167-5、说明
使用场景:
167-5-1、数据清理和预处理:在处理和清理数据时,计算平均值可以帮助识别异常值和缺失值。例如,可以计算某列数值的平均值来填补缺失数据,或者用于检测数据中的异常值。
167-5-2、描述性统计分析:平均值是描述性统计分析中的一个基本指标,通过计算平均值,可以快速了解数据的集中趋势,这在报告和数据可视化中非常有用。
167-5-3、财务分析:在财务数据分析中,平均值可以用于计算股票价格的平均值、收益率的平均值、费用的平均值等,这些平均值可以帮助分析趋势和做出投资决策。
167-5-4、实验和科学研究:在科学研究中,平均值用于分析实验结果。例如,在生物学研究中,可以计算某一组实验数据的平均值来比较不同处理条件下的效果。
167-5-5、教育和考试成绩分析:在教育领域,平均成绩用于评估学生的总体表现,可以计算单个学生的平均成绩,或者整个班级、学校的平均成绩,以了解学习情况和制定改进计划。
167-5-6、监控和绩效评估:在工业和企业管理中,平均值用于监控生产效率和员工绩效。例如,计算每天生产的平均数量或员工的平均工作时间,帮助优化资源配置和提高效率。
167-5-7、健康和医学数据分析:在健康和医学领域,平均值用于分析病人的体检数据、治疗效果等。例如,可以计算病人的平均血糖值、平均心率等,以评估健康状况。
167-6、用法
167-6-1、数据准备
无
167-6-2、代码示例
# 167、pandas.Series.mean方法
# 167-1、数据清理和预处理
import pandas as pd
import numpy as np
# 创建示例数据
data = pd.DataFrame({'column_with_nans': [1, 2, np.nan, 4, 5, np.nan, 7]
})
# 使用平均值填补缺失数据
data['column_with_nans'] = data['column_with_nans'].fillna(data['column_with_nans'].mean())
print(data, end='\n\n')# 167-2、描述性统计分析
import pandas as pd
# 创建示例数据
data = pd.DataFrame({'col1': [10, 20, 30, 40],'col2': [15, 25, 35, 45],'col3': [20, 30, 40, 50]
})
# 计算并打印多个列的平均值
print(data[['col1', 'col2', 'col3']].mean(), end='\n\n')# 167-3、财务分析
import pandas as pd
# 创建示例股票数据
stock_data = pd.DataFrame({'closing_price': [150, 155, 160, 148, 153, 157]
})
# 计算股票价格的平均值
average_stock_price = stock_data['closing_price'].mean()
print(f"Average stock price: {average_stock_price}", end='\n\n')# 167-4、实验和科学研究
import pandas as pd
# 创建示例实验数据
experiment_data = pd.DataFrame({'treatment_group': [5.2, 6.1, 5.8, 6.5],'control_group': [4.9, 5.0, 4.7, 5.2]
})
# 计算实验组和对照组的平均值
experiment_group_mean = experiment_data['treatment_group'].mean()
control_group_mean = experiment_data['control_group'].mean()
print(f"Treatment group mean: {experiment_group_mean}")
print(f"Control group mean: {control_group_mean}", end='\n\n')# 167-5、教育和考试成绩分析
import pandas as pd
# 创建示例学生成绩数据
student_scores = pd.Series([85, 90, 78, 92, 88])
# 计算学生的平均成绩
student_average_score = student_scores.mean()
print(f"Student's average score: {student_average_score}", end='\n\n')# 167-6、监控和绩效评估
import pandas as pd
# 创建示例生产数据
production_data = pd.DataFrame({'daily_output': [120, 130, 125, 135, 140]
})
# 计算每天的平均生产量
average_daily_production = production_data['daily_output'].mean()
print(f"Average daily production: {average_daily_production}", end='\n\n')# 167-7、健康和医学数据分析
import pandas as pd
# 创建示例医学数据
medical_data = pd.DataFrame({'blood_sugar': [90, 85, 88, 92, 87, 95]
})
# 计算病人的平均血糖值
average_blood_sugar = medical_data['blood_sugar'].mean()
print(f"Average blood sugar level: {average_blood_sugar}")
167-6-3、结果输出
# 167、pandas.Series.mean方法
# 167-1、数据清理和预处理
# column_with_nans
# 0 1.0
# 1 2.0
# 2 3.8
# 3 4.0
# 4 5.0
# 5 3.8
# 6 7.0# 167-2、描述性统计分析
# col1 25.0
# col2 30.0
# col3 35.0
# dtype: float64# 167-3、财务分析
# Average stock price: 153.83333333333334# 167-4、实验和科学研究
# Treatment group mean: 5.9
# Control group mean: 4.95# 167-5、教育和考试成绩分析
# Student's average score: 86.6# 167-6、监控和绩效评估
# Average daily production: 130.0# 167-7、健康和医学数据分析
# Average blood sugar level: 89.5
168、pandas.Series.median方法
168-1、语法
# 168、pandas.Series.median方法
pandas.Series.median(axis=0, skipna=True, numeric_only=False, **kwargs)
Return the median of the values over the requested axis.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
168-2、参数
168-2-1、axis(可选,默认值为0):对Series无影响,仅对DataFrame中有效。
168-2-2、skipna(可选,默认值为True):是否跳过NaN值,如果设置为False,则如果Series中存在NaN值,返回值会是NaN。
168-2-3、numeric_only(可选,默认值为False):对Series无影响,仅在DataFrame中有意义。
168-2-4、**kwargs(可选):其他关键字参数,为后续扩展其他功能做预留。
168-3、功能
提供一种简便的方法来计算数据序列的中位数,尤其是在数据中可能存在缺失值(NaN)的情况下,通过使用skipna参数,用户可以选择是否忽略这些缺失值。
168-4、返回值
返回值是一个浮点数或数值,表示该Series的中位数,如果所有数据均为缺失值且skipna设置为False,则返回值为NaN。
168-5、说明
使用场景:
168-5-1、数据集中的中心趋势分析:中位数是描述数据集中心趋势的一个重要统计量,与均值相比,中位数对于极端值(离群值)不敏感,因此在数据集存在离群值时,使用中位数可以更准确地反映数据的中心趋势。
168-5-2、数据清洗和预处理:在处理包含缺失值的数据集时,中位数常用于填补缺失值,因为它不会受到极端值的影响,通过计算每列的中位数,可以对缺失值进行合理的填补,从而保留数据集的整体趋势。
168-5-3、离群值检测:中位数也可用于离群值检测。在一组数据中,如果某个值与中位数的偏差较大,则可能是一个离群值,通过计算每个数据点与中位数的绝对偏差,可以识别出异常数据点。
168-5-4、分组数据的中位数计算:在对数据进行分组分析时,可以使用中位数来描述每个分组的中心趋势,特别是在不同类别的数据分布不均匀时,中位数提供了一种更稳健的统计描述。
168-5-5、财务数据分析:在财务数据分析中,中位数常用于描述收入、支出等数据的中心趋势。例如,在分析公司员工的薪酬分布时,中位数可以更好地反映大多数员工的薪酬水平,避免被少数高薪员工的数据拉高均值。
168-5-6、医学数据分析:在医学数据分析中,中位数常用于描述患者某项生理指标的典型值。例如,在分析某种疾病的患者血压数据时,中位数可以更准确地反映大多数患者的血压水平,避免受到极端值的干扰。
168-5-7、教育数据分析:在教育数据分析中,中位数可以用于描述学生考试成绩的典型水平,通过计算班级或学校的成绩中位数,可以了解大多数学生的成绩水平,进而评估教学效果。
168-6、用法
168-6-1、数据准备
无
168-6-2、代码示例
# 168、pandas.Series.median方法
# 168-1、数据清洗和预处理
import pandas as pd
import numpy as np
data = pd.Series([10, 15, np.nan, 20, 25])
median_value = data.median(skipna=True)
print(median_value)
data.fillna(median_value, inplace=True)
print(median_value)
data = pd.Series([10, 12, 14, 1000, 16])
median_value = data.median()
print(median_value, end='\n\n')# 168-2、金融数据分析
import pandas as pd
import numpy as np
# 股票价格分析
prices = pd.Series([100, 102, np.nan, 105, 107])
median_price = prices.median(skipna=True)
prices.fillna(median_price, inplace=True)
print(median_price)
# 市场中位数计算
weekly_prices = pd.Series([100, 101, 102, 103, 104, 105, 106])
median_weekly_price = weekly_prices.median()
print(weekly_prices, end='\n\n')# 168-3、教育数据分析
import pandas as pd
grades = pd.Series([85, 90, 78, 92, 88])
median_grade = grades.median() # 结果为88.0
print(median_grade, end='\n\n')# 168-4、健康数据分析
import pandas as pd
weights = pd.Series([60, 65, 70, 120, 75])
median_weight = weights.median()
print(median_weight, end='\n\n')# 168-5、经济数据分析
import pandas as pd
incomes = pd.Series([30000, 35000, 40000, 1000000, 45000])
median_income = incomes.median()
print(median_income)
168-6-3、结果输出
# 168、pandas.Series.median方法
# 168-1、数据清洗和预处理
# 17.5
# 17.5
# 14.0# 168-2、金融数据分析
# 103.5
# 0 100
# 1 101
# 2 102
# 3 103
# 4 104
# 5 105
# 6 106
# dtype: int64# 168-3、教育数据分析
# 88.0# 168-4、健康数据分析
# 70.0# 168-5、经济数据分析
# 40000.0
169、pandas.Series.min方法
169-1、语法
# 169、pandas.Series.min方法
pandas.Series.min(axis=0, skipna=True, numeric_only=False, **kwargs)
Return the minimum of the values over the requested axis.If you want the index of the minimum, use idxmin. This is the equivalent of the numpy.ndarray method argmin.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
169-2、参数
169-2-1、axis(可选,默认值为0):对Series无影响,仅对DataFrame中有效。
169-2-2、skipna(可选,默认值为True):是否跳过NaN值,如果设置为False,则如果Series中存在NaN值,返回值会是NaN。
169-2-3、numeric_only(可选,默认值为False):对Series无影响,仅在DataFrame中有意义。
169-2-4、**kwargs(可选):其他关键字参数,为后续扩展其他功能做预留。
169-3、功能
169-3-1、计算最小值:找到Series中的最小元素。
169-3-2、处理缺失值:通过参数skipna来决定是否跳过缺失值(NaN)。
169-3-3、只考虑数值数据:通过参数numeric_only来决定是否只考虑数值数据。
169-4、返回值
169-4-1、最小值:返回Series中的最小元素。如果Series中所有值都是缺失值(NaN),并且skinpna设置为True,则返回NaN。
169-4-2、类型:返回值的类型与Series中元素的类型一致。如果Series为空或所有值都是NaN(且skipna=False),则返回NaN。
169-5、说明
无
169-6、用法
169-6-1、数据准备
无
169-6-2、代码示例
# 169、pandas.Series.min方法
# 169-1、数据清洗
import pandas as pd
import numpy as np
data = pd.Series([10, 15, np.nan, 20, 25])
min_value = data.min(skipna=True)
print(min_value, end='\n\n')# 169-2、数据分析
import pandas as pd
grades = pd.Series([85, 90, 78, 92, 88])
min_grade = grades.min()
print(min_grade, end='\n\n')# 169-3、金融数据分析
import pandas as pd
prices = pd.Series([100, 102, 98, 105, 107])
min_price = prices.min()
print(min_price, end='\n\n')# 169-4、健康数据分析
import pandas as pd
weights = pd.Series([60, 65, 70, 55, 75])
min_weight = weights.min()
print(min_weight, end='\n\n')# 169-5、质量控制
import pandas as pd
measurements = pd.Series([10.2, 10.4, 10.1, 10.5, 10.3])
min_measurement = measurements.min()
print(min_measurement, end='\n\n')# 169-6、环境数据分析
import pandas as pd
temperatures = pd.Series([22.5, 21.0, 19.5, 23.0, 20.0])
min_temperature = temperatures.min()
print(min_temperature, end='\n\n')# 169-7、销售数据分析
import pandas as pd
sales = pd.Series([1500, 1600, 1450, 1700, 1550])
min_sales = sales.min()
print(min_sales, end='\n\n')# 169-8、运动数据分析
import pandas as pd
speeds = pd.Series([10.2, 9.8, 10.5, 9.6, 10.0])
min_speed = speeds.min()
print(min_speed, end='\n\n')
# 169-9、交通数据分析
import pandas as pd
traffic = pd.Series([200, 150, 180, 170, 160])
min_traffic = traffic.min()
print(min_traffic)
169-6-3、结果输出
# 169、pandas.Series.min方法
# 169-1、数据清洗
# 10.0# 169-2、数据分析
# 78# 169-3、金融数据分析
# 98# 169-4、健康数据分析
# 55# 169-5、质量控制
# 10.1# 169-6、环境数据分析
# 19.5# 169-7、销售数据分析
# 1450# 169-8、运动数据分析
# 9.6# 169-9、交通数据分析
# 150
170、pandas.Series.mode方法
170-1、语法
# 170、pandas.Series.mode方法
pandas.Series.mode(dropna=True)
Return the mode(s) of the Series.The mode is the value that appears most often. There can be multiple modes.Always returns Series even if only one value is returned.Parameters:
dropna
bool, default True
Don’t consider counts of NaN/NaT.Returns:
Series
Modes of the Series in sorted order.
170-2、参数
170-2-1、dropna(可选,默认值为True):布尔值,表示在计算众数时是否忽略空值(NaN)。
170-3、功能
用于找到数据序列中出现频率最高的值(众数)。
170-4、返回值
返回值是一个包含数据序列中所有众数的pandas.Series对象,返回值可能包含一个或多个众数,取决于数据中每个值的频率。
170-5、说明
使用场景:
170-5-1、数据清洗:在数据清洗过程中,一般会使用dropna=True,以确保众数的计算不受缺失值的影响。
170-5-2、数据完整性分析:如果需要分析数据缺失情况,可以使用dropna=False来查看空值是否为众数之一。
170-6、用法
170-6-1、数据准备
无
170-6-2、代码示例
# 170、pandas.Series.mode方法
# 170-1、数据清洗
import pandas as pd
import numpy as np
data = pd.Series([1, 2, 2, 3, np.nan, 4, 4, 4])
mode_value = data.mode(dropna=True)
print(mode_value, end='\n\n')# 170-2、消费者行为分析
import pandas as pd
products = pd.Series(['apple', 'banana', 'apple', 'orange', 'banana', 'apple'])
mode_product = products.mode(dropna=True)
print(mode_product, end='\n\n')# 170-3、学生成绩分析
import pandas as pd
grades = pd.Series([85, 90, 78, 90, 88, 85, 90])
mode_grade = grades.mode(dropna=True)
print(mode_grade, end='\n\n')# 170-4、金融数据分析
import pandas as pd
prices = pd.Series([100, 102, 98, 105, 107, 100, 100])
mode_price = prices.mode(dropna=True)
print(mode_price, end='\n\n')# 170-5、健康数据分析
import pandas as pd
symptoms = pd.Series(['cough', 'fever', 'cough', 'headache', 'cough', 'fever'])
mode_symptom = symptoms.mode(dropna=True)
print(mode_symptom, end='\n\n')# 170-6、质量控制
import pandas as pd
defects = pd.Series(['scratch', 'dent', 'scratch', 'crack', 'scratch'])
mode_defect = defects.mode(dropna=True)
print(mode_defect, end='\n\n')# 170-7、环境数据分析
import pandas as pd
weather_conditions = pd.Series(['sunny', 'rainy', 'sunny', 'cloudy', 'sunny', 'rainy'])
mode_weather = weather_conditions.mode(dropna=True)
print(mode_weather, end='\n\n')# 170-8、销售数据分析
import pandas as pd
sales = pd.Series([1500, 1600, 1450, 1500, 1550, 1500])
mode_sales = sales.mode(dropna=True)
print(mode_sales, end='\n\n')# 170-9、运动数据分析
import pandas as pd
exercise_types = pd.Series(['running', 'swimming', 'running', 'cycling', 'running'])
mode_exercise = exercise_types.mode(dropna=True)
print(mode_exercise, end='\n\n') # 170-10、交通数据分析
import pandas as pd
traffic = pd.Series([200, 150, 180, 170, 160, 150, 150])
mode_traffic = traffic.mode(dropna=True)
print(mode_traffic)
170-6-3、结果输出
# 170、pandas.Series.mode方法
# 170-1、数据清洗
# 0 4.0
# dtype: float64# 170-2、消费者行为分析
# 0 apple
# dtype: object# 170-3、学生成绩分析
# 0 90
# dtype: int64# 170-4、金融数据分析
# 0 100
# dtype: int64# 170-5、健康数据分析
# 0 cough
# dtype: object# 170-6、质量控制
# 0 scratch
# dtype: object# 170-7、环境数据分析
# 0 sunny
# dtype: object# 170-8、销售数据分析
# 0 1500
# dtype: int64# 170-9、运动数据分析
# 0 running
# dtype: object# 170-10、交通数据分析
# 0 150
# dtype: int64