目录
一、用法精讲
181、pandas.Series.var方法
181-1、语法
# 181、pandas.Series.var方法
pandas.Series.var(axis=None, skipna=True, ddof=1, numeric_only=False, **kwargs)
Return unbiased variance 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.var 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)
181-2、参数
181-2-1、axis(可选,默认值为None):用于指定计算沿哪个轴进行,对Series对象没有实际作用,因为Series是一维的。
181-2-2、skipna(可选,默认值为True):当skipna=True时,忽略缺失值(NaN)进行计算;如果skipna=False,则包含缺失值,如果有缺失值,结果将为NaN。
181-2-3、ddof(可选,默认值为1):自由度调整参数,ddof是“Delta Degrees of Freedom”的缩写,用于在方差计算公式中调整分母。
181-2-4、numeric_only(可选,默认值为False):如果为True,则只对数字数据进行计算,忽略非数字列。在Series中此参数通常无效,因为Series只有一维数据。
181-2-5、**kwargs(可选):其他关键字参数,为后续扩展功能做预留。
181-3、功能
用于计算一维数据序列(Series)的样本方差,方差是度量数据集分散程度的统计指标,它表示数据点与均值之间的平均偏离程度的平方。
181-4、返回值
返回一个浮点数,表示输入数据的样本方差,如果Series中所有值都为NaN,或者ddof参数的值大于非NaN值的数量,则返回NaN。
181-5、说明
使用场景:
181-5-1、数据探索和预处理:在进行数据分析的初期,了解数据的分布和变异性是很重要的,通过计算方差,可以快速判断数据的离散程度,从而识别出数据中的异常值和极端值。
181-5-2、风险管理:在金融领域,方差常用于评估投资组合的风险。高方差意味着高风险,因为价格波动较大,通过计算投资组合中各资产的方差,可以更好地进行风险评估和管理。
181-5-3、质量控制:在制造业中,方差用于监控和控制产品质量。较低的方差表示产品的一致性较高,质量较稳定,通过定期计算生产数据的方差,可以及时发现生产过程中的问题。
181-5-4、教育评估:在教育领域,方差可以用来评估学生成绩的离散程度。较低的方差表示学生成绩较为集中,差距较小;较高的方差表示学生成绩差距较大。
181-5-5、科学研究:在科学研究中,方差用于分析实验数据的变异性。例如,在农业研究中,可以通过计算不同肥料处理的作物产量的方差,来评估肥料的效果。
181-6、用法
181-6-1、数据准备
无
181-6-2、代码示例
# 181、pandas.Series.var方法
# 181-1、数据探索和预处理
import pandas as pd
# 创建一个示例数据集
data = pd.Series([10, 12, 23, 23, 16, 23, 21, 16, 23, 21])
# 计算方差
variance = data.var()
print(f"数据的方差为: {variance}")
# 181-2、风险管理
import pandas as pd
# 创建一个包含股票回报率的Series
stock_returns = pd.Series([0.05, 0.02, 0.03, -0.02, 0.04, -0.01, 0.03])
# 计算股票回报率的方差
variance = stock_returns.var()
print(f"股票回报率的方差为: {variance}")
# 181-3、质量控制
import pandas as pd
# 创建一个包含产品重量的Series
product_weights = pd.Series([500, 502, 499, 501, 500, 498, 500])
# 计算产品重量的方差
variance = product_weights.var()
print(f"产品重量的方差为: {variance}")
# 181-4、教育评估
import pandas as pd
# 创建一个包含学生考试成绩的Series
student_scores = pd.Series([85, 88, 90, 92, 87, 85, 91])
# 计算学生考试成绩的方差
variance = student_scores.var()
print(f"学生考试成绩的方差为: {variance}")
# 181-5、科学研究
import pandas as pd
# 创建一个包含不同肥料处理的作物产量的Series
crop_yields = pd.Series([300, 320, 310, 305, 315, 300, 310])
# 计算作物产量的方差
variance = crop_yields.var()
print(f"作物产量的方差为: {variance}")
181-6-3、结果输出
# 181、pandas.Series.var方法
# 181-1、数据探索和预处理
# 数据的方差为: 24.4
# 181-2、风险管理
# 股票回报率的方差为: 0.0006666666666666669
# 181-3、质量控制
# 产品重量的方差为: 1.6666666666666667
# 181-4、教育评估
# 学生考试成绩的方差为: 7.904761904761904
# 181-5、科学研究
# 作物产量的方差为: 55.952380952380956
182、pandas.Series.kurtosis方法
182-1、语法
# 182、pandas.Series.kurtosis方法
pandas.Series.kurtosis(axis=0, skipna=True, numeric_only=False, **kwargs)
Return unbiased kurtosis over requested axis.
Kurtosis obtained using Fisher’s definition of kurtosis (kurtosis of normal == 0.0). 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
182-2、参数
182-2-1、axis(可选,默认值为0):指定计算沿着的轴,对于Series,这个参数没有实际作用,因为Series是一维的;对于DataFrame,0
表示沿着列计算,1
表示沿着行计算。
182-2-2、skipna(可选,默认值为True):指定是否忽略缺失值,如果为True
,将会跳过NaN值;如果为False
,任何NaN值都会导致结果为NaN。
182-2-3、numeric_only(可选,默认值为False):如果为True
,只包括数值类型的列,如果为None
,尝试包括所有数据类型,但在数据类型不支持计算时会导致错误。
182-2-4、**kwargs(可选):可以接受并传递到其他函数中的额外关键字参数,通常在用户需要进行更高级的自定义时使用。
182-3、功能
用于计算数据的峰度(Kurtosis),也称为“超额峰度”,它衡量数据分布的形态与正态分布相比的陡峭程度。具体来说,峰度值可以描述数据分布在其平均值周围的形状特性:
182-3-1、正峰度(Kurtosis > 0):表示分布在中心附近有更多高峰值,比正态分布更陡峭。
182-3-2、负峰度(Kurtosis < 0):表示分布在中心附近有更多平坦值,比正态分布更平缓。
182-3-3、零峰度(Kurtosis = 0):表示分布与正态分布相同。
182-4、返回值
返回一个浮点数,表示计算得到的峰度值,如果Series为空或者全是NaN值,返回NaN。
182-5、说明
使用场景:
182-5-1、数据分布分析:了解数据分布的形态,识别异常值或极端值的存在。例如,分析学生考试成绩的分布情况,识别是否存在大量的高分或低分。
182-5-2、金融数据分析:评估资产收益分布的风险特性,高峰度意味着更高的风险,因为极端收益的可能性较大。例如,分析股票回报率,识别是否有极端的收益或亏损。
182-5-3、风险管理:评估和管理风险时,理解数据分布的形态可以帮助识别潜在的高风险区域。例如,保险公司分析索赔金额的分布,识别高额索赔的可能性。
182-5-4、正态性检验:检验数据是否符合正态分布,正态分布的峰度值接近0。例如,分析实验数据,检验其是否符合正态分布以决定后续的统计分析方法。
182-5-5、品质控制:在制造业和品质控制中,分析产品测量数据的分布形态,识别是否存在批次间的差异或异常。例如,分析产品的尺寸测量数据,识别生产过程中的异常情况。
182-5-6、生态学和生物学:研究动物体重、植物高度等生物数据的分布,识别极端值的存在。例如,分析某种动物的体重数据,识别是否存在明显的肥胖或瘦弱个体。
182-6、用法
182-6-1、数据准备
无
182-6-2、代码示例
# 182、pandas.Series.kurtosis方法
# 182-1、数据分布分析
import pandas as pd
scores = pd.Series([65, 70, 75, 80, 85, 90, 95, 100, 105, 110])
kurtosis = scores.kurtosis()
print(f"考试成绩的峰度为: {kurtosis}")
# 182-2、金融数据分析
import pandas as pd
returns = pd.Series([0.01, 0.02, -0.01, 0.03, 0.05, -0.02, 0.04, 0.06, -0.03, 0.02])
kurtosis = returns.kurtosis()
print(f"股票回报率的峰度为: {kurtosis}")
# 182-3、风险管理
import pandas as pd
claims = pd.Series([100, 200, 300, 400, 500, 600, 700, 800, 900, 1000])
kurtosis = claims.kurtosis()
print(f"索赔金额的峰度为: {kurtosis}")
# 182-4、正态性检验
import pandas as pd
import numpy as np
data = pd.Series(np.random.normal(0, 1, 1000))
kurtosis = data.kurtosis()
print(f"实验数据的峰度为: {kurtosis}")
# 182-5、品质控制
import pandas as pd
measurements = pd.Series([15.5, 15.7, 15.6, 15.8, 15.7, 15.9, 16.0, 15.6, 15.8, 15.7])
kurtosis = measurements.kurtosis()
print(f"产品尺寸测量数据的峰度为: {kurtosis}")
# 182-6、生态学和生物学
import pandas as pd
weights = pd.Series([45, 50, 55, 60, 65, 70, 75, 80, 85, 90])
kurtosis = weights.kurtosis()
print(f"动物体重数据的峰度为: {kurtosis}")
182-6-3、结果输出
# 182、pandas.Series.kurtosis方法
# 182-1、数据分布分析
# 考试成绩的峰度为: -1.2000000000000002
# 182-2、金融数据分析
# 股票回报率的峰度为: -0.9774499371772465
# 182-3、风险管理
# 索赔金额的峰度为: -1.2000000000000002
# 182-4、正态性检验
# 实验数据的峰度为: 0.10963819497124572
# 182-5、品质控制
# 产品尺寸测量数据的峰度为: -0.15179963720841272
# 182-6、生态学和生物学
# 动物体重数据的峰度为: -1.2000000000000002
183、pandas.Series.unique方法
183-1、语法
# 183、pandas.Series.unique方法
pandas.Series.unique()
Return unique values of Series object.
Uniques are returned in order of appearance. Hash table-based unique, therefore does NOT sort.
Returns:
ndarray or ExtensionArray
The unique values returned as a NumPy array. See Notes.
183-2、参数
无
183-3、功能
用于返回系列中唯一值的NumPy数组。
183-4、返回值
返回一个包含系列中所有唯一值的 NumPy 数组,这些值的顺序与它们在系列中首次出现的顺序一致。
183-5、说明
使用场景:
183-5-1、数据去重:从数据集中提取唯一值,以便后续分析或处理。例如,提取一组客户ID中的唯一值。
183-5-2、类别数据分析:分析分类变量中的不同类别。例如,提取一组产品类型中的所有不同类型。
183-5-3、识别异常值:通过查看唯一值识别数据中的异常或错误值。例如,检查年龄数据中的异常值。
183-5-4、数据清洗:在数据清洗过程中,识别并处理重复或冗余数据。例如,清洗客户订单数据,提取唯一的订单编号。
183-5-5、数据转换:将序列转换为唯一值的数组,用于进一步的计算或转换。例如,提取唯一的城市名称并进行进一步分析。
183-5-6、性能优化:在处理大型数据集时,先提取唯一值可以提高计算效率。例如,处理大规模交易数据时,提取唯一的交易类型。
183-6、用法
183-6-1、数据准备
无
183-6-2、代码示例
# 183、pandas.Series.unique方法
# 183-1、数据去重
import pandas as pd
customer_ids = pd.Series([101, 102, 103, 101, 104, 102, 105])
unique_customer_ids = customer_ids.unique()
print(f"唯一的客户ID: {unique_customer_ids}")
# 183-2、类别数据分析
import pandas as pd
product_types = pd.Series(['电子产品', '家居用品', '服装', '电子产品', '食品', '家居用品'])
unique_product_types = product_types.unique()
print(f"唯一的产品类型: {unique_product_types}")
# 183-3、识别异常值
import pandas as pd
ages = pd.Series([25, 30, 35, 40, 45, 30, 1000])
unique_ages = ages.unique()
print(f"唯一的年龄值: {unique_ages}")
# 183-4、数据清洗
import pandas as pd
order_numbers = pd.Series(['A001', 'A002', 'A003', 'A001', 'A004', 'A002'])
unique_order_numbers = order_numbers.unique()
print(f"唯一的订单编号: {unique_order_numbers}")
# 183-5、数据转换
import pandas as pd
cities = pd.Series(['北京', '上海', '广州', '北京', '深圳', '上海'])
unique_cities = cities.unique()
print(f"唯一的城市名称: {unique_cities}")
# 183-6、性能优化
import pandas as pd
transaction_types = pd.Series(['购买', '出售', '退款', '购买', '出售', '转账'])
unique_transaction_types = transaction_types.unique()
print(f"唯一的交易类型: {unique_transaction_types}")
183-6-3、结果输出
# 183、pandas.Series.unique方法
# 183-1、数据去重
# 唯一的客户ID: [101 102 103 104 105]
# 183-2、类别数据分析
# 唯一的产品类型: ['电子产品' '家居用品' '服装' '食品']
# 183-3、识别异常值
# 唯一的年龄值: [ 25 30 35 40 45 1000]
# 183-4、数据清洗
# 唯一的订单编号: ['A001' 'A002' 'A003' 'A004']
# 183-5、数据转换
# 唯一的城市名称: ['北京' '上海' '广州' '深圳']
# 183-6、性能优化
# 唯一的交易类型: ['购买' '出售' '退款' '转账']
184、pandas.Series.nunique方法
184-1、语法
# 184、pandas.Series.nunique方法
pandas.Series.nunique(dropna=True)
Return number of unique elements in the object.
Excludes NA values by default.
Parameters:
dropna
bool, default True
Don’t include NaN in the count.
Returns:
int
184-2、参数
184-2-1、dropna(可选,默认值为True):布尔值,如果为True,则排除缺失值(NaN
);如果为False,则包括缺失值在内。
184-3、功能
计算系列中唯一值的数量,该方法可以选择性地包含或排除缺失值(如NaN
)。
184-4、返回值
返回系列中唯一值的数量,类型为整数。
184-5、说明
该方法在许多数据分析任务中都非常有用。例如,在数据预处理阶段,可以用它来检查分类变量的不同类别数量,或者在数据清洗过程中,快速了解数据集中有多少不同的值。
184-6、用法
184-6-1、数据准备
无
184-6-2、代码示例
# 184、pandas.Series.nunique方法
import pandas as pd
# 创建一个包含重复值和缺失值的系列
data = pd.Series([1, 2, 2, 3, 4, 4, 5, None, None])
# 计算唯一值的数量,排除缺失值
unique_count = data.nunique()
# 打印唯一值的数量
print(f"唯一值的数量(排除缺失值): {unique_count}")
# 计算唯一值的数量,包括缺失值
unique_count_including_nan = data.nunique(dropna=False)
# 打印唯一值的数量(包括缺失值)
print(f"唯一值的数量(包括缺失值): {unique_count_including_nan}")
184-6-3、结果输出
# 184、pandas.Series.nunique方法
# 唯一值的数量(排除缺失值): 5
# 唯一值的数量(包括缺失值): 6
185、pandas.Series.is_unique属性
185-1、语法
# 185、pandas.Series.is_unique属性
property pandas.Series.is_unique
Return boolean if values in the object are unique.
Returns:
bool
185-2、参数
无
185-3、功能
用于判断系列中的值是否唯一。
185-4、返回值
返回一个布尔值,如果系列中的所有值都是唯一的(即没有重复值),is_unique返回True;
如果系列中存在重复值,is_unique返回False。
185-5、说明
在数据分析过程中,is_unique属性可以用来快速检查数据的唯一性,例如验证主键列的唯一性、检查分类变量是否有重复类别等。
185-6、用法
185-6-1、数据准备
无
185-6-2、代码示例
# 185、pandas.Series.is_unique属性
import pandas as pd
# 创建一个系列,没有重复值
data_unique = pd.Series([3, 5, 6, 8, 10, 11, 24])
# 判断系列中的值是否唯一
is_unique = data_unique.is_unique
print(f"系列值是否唯一: {is_unique}")
# 创建一个系列,有重复值
data_not_unique = pd.Series([3, 5, 6, 8, 10, 10, 11, 24])
# 判断系列中的值是否唯一
is_unique = data_not_unique.is_unique
print(f"系列值是否唯一: {is_unique}")
185-6-3、结果输出
# 185、pandas.Series.is_unique属性
# 系列值是否唯一: True
# 系列值是否唯一: False