当前位置: 首页 > article >正文

Python----数据分析(Pandas四:一维数组Series的统计计算,分组和聚合)

一、统计计算

1.1、 count

        用于计算 Series中非NaN(非空)值的数量。

import pandas as pd

s = pd.Series([1, 2, None, 4, None])

count_non_na = s.count()
print(count_non_na)

1.2、 sum

        sum() 函数会计算所有值的总和。

Series.sum(axis=None, skipna=True, numeric_only=None, min_count=0)
描述说明
axis对于 Series对象来说,这个参数通常不起作用,因为 Series是一维的。 它主要在 DataFrame对象中用于指定操作的轴(0表示按列求和,1表示按行求 和)。
skipna布尔值,默认为True,如果为True,则在计算总和时会忽略NaN值 。 如果为False,则返回NaN。
numeric_only布尔值,默认为None。如果为True,则只对数字类型的数据进行计算,只针对DataFrame。
min_countint值,默认为0。表示在计算总和之前,至少需要多少个非NaN值.如果非NaN值的数量小于min_count,则结果为 NaN。
import pandas as pd
s = pd.Series([1, 2, None, 4, 5])
total = s.sum(min_count=5)
print(total)

1.3、 mean

        mean() 函数会计算所有值的平均值。

Series.mean(axis=None, skipna=True, numeric_only=None)
描述说明
axis对于 Series对象来说,这个参数通常不起作用,因为 Series是一维的。 它主要在 DataFrame对象中用于指定操作的轴(0表示按列计算平均值,1表示按 行计算平均值)。
skipna布尔值,默认为True,如果为True,则在计算总和时会忽略NaN值 。 如果为False,则返回NaN。
numeric_only布尔值,默认为None。如果为True,则只对数字类型的数据进行计算,只针对DataFrame。

1.4、 median

        median()函数用于计算DataFrame或Series中的中位数。

Series.median(axis=0, skipna=True, numeric_only=False)
描述说明
axis对于 Series对象来说,这个参数通常不起作用,因为 Series是一维的。 它主要在 DataFrame对象中用于指定操作的轴(0表示按列计算中位数,1表示按 行计算中位数)。
skipna布尔值,默认为True,如果为True,则在计算总和时会忽略NaN值 。 如果为False,则返回NaN。
numeric_only布尔值,默认为None。如果为True,则只对数字类型的数据进行计算,只针对DataFrame。
import pandas as pd

s = pd.Series([1, 2, 3, 4, 5])
median_value = s.median()
print(median_value)

1.5、 min和max

        Series.min()函数用于计算Series对象中的最小值, Series.max()函数用于计算Series对象中的最大值。

Series.min(axis=0, skipna=True, numeric_only=False)
Series.max(axis=0, skipna=True, numeric_only=False)
描述说明
axis对于 Series对象来说,这个参数通常不起作用,因为 Series是一维的。 它主要在 DataFrame对象中用于指定操作的轴(0表示按列计算最大最小值,1表示按 行计算最大最小值)。
skipna布尔值,默认为True,如果为True,则在计算总和时会忽略NaN值 。 如果为False,则返回NaN。
numeric_only布尔值,默认为None。如果为True,则只对数字类型的数据进行计算,只针对DataFrame。
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])
min_value = s.min()
max_value = s.max()
print('最小值是:', min_value)
print('最大值是:', max_value)

1.6、 var

        Series.var()函数用于计算Series对象的方差。

Series.var(axis=None, skipna=True, ddof=1, numeric_only=False)
描述说明
axis对于 在DataFrame中, Series对象,这个参数不会产生任何效果,因为 Series是一维的。axis用于指定沿着哪个轴计算方差。
skipna布尔值,默认为 True。如果为 True,则在计算方差之前会忽略 NaN 值。如果设置为 False,计算方差时会包括 NaN值,通常会导致结果也是 NaN。
ddof整数,默认为1。Delta Degrees of Freedom,用于贝塞尔校正,以得到 样本方差的估计。对于无偏估计(样本方差), ddof通常设置为1。如果计算总 体方差,应该将 ddof设置为0。
numeric_only布尔值,默认为False,如果为True ,则只对数字类型的数据进行方差计算,忽略非数字类型的数据。
import pandas as pd
import numpy as np
s = pd.Series([1, 2, np.nan, 4, 5])
variance = s.var()
print('方差是:', variance)

1.7、 std

        Series.std()函数用于计算Series对象的标准差。

Series.std(axis=None, skipna=True, ddof=1, numeric_only=False, **kwargs)
描述说明
axis对于Series来说,这个参数不会产生任何效果,因为Series是一维的。它 主要用于DataFrame,以指定沿着哪个轴计算标准差。
skipna布尔值,默认为True。如果为True,则在计算标准差之前会忽略NaN 值,如果为False,则返回NaN。
ddof整数,默认为1。Delta Degrees of Freedom,是贝塞尔校正的参数。对 于无偏估计(样本标准差),ddof通常设置为1。
numeric_only布尔值,默认为False。如果为True,则只对数字类型的数据进 行计算,只针对DataFrame。
**kwargs其他关键字参数
import pandas as pd
import numpy as np
s = pd.Series([1, 2, np.nan, 4, 5])
std_dev = s.std()
print('标准差是:', std_dev)

1.8、 quantile

        Series.quantile() 方法用于计算Series中数值的分位数。

Series.quantile(q=0.5, interpolation='linear')
描述说明
q这个参数是必需的,它表示要计算的分位数值。可以是单一的数值,也可以 是一个数值列表。例如, q=0.5 表示计算中位数(50%分位数)。
interpolation这个参数决定了当所需的分位数位于两个数据点之间时,应该 如何插值。默认值是 'linear',表示线性插值。其他选项包括 近的值)、 'lower'(选择较小的值)、 'nearest'(最 'higher'(选择较大的 值)、 'midpoint'(两个值的中间点)。

计算0.5分位数

import pandas as pd

s = pd.Series([1, 2, 3, 4, 5])

median_value = s.quantile(q=0.5, interpolation='linear')
print(median_value)

1.9、 cummax

        该方法用于计算Series中元素的累积最大值,返回一个相同长度的Series,其中每个 位置上的值表示从Series开始到当前位置(包括当前位置)的最大值。

Series.cummax(axis=None, skipna=True, *args, **kwargs)
描述说明
axis对于Series来说,这个参数不起作用,因为Series是一维的。在 DataFrame上使用时, axis=0(默认)表示按列计算, axis=1表示按行计算。
skipna布尔值,默认为True。如果为True,则在计算累积最大值时会忽略NaN 值;如果为False,则任何NaN值都会导致结果在该位置及之后的值都为NaN。
*args, **kwargs这些参数用于兼容性,通常不需要使用。
import pandas as pd

s = pd.Series([1, 2, None, 4, 5])

cumsum_series = s.cummax()
print(cumsum_series)

1.10、 cummin

        该方法用于计算Series中元素的累积最小值,返回一个相同长度的Series,其中每个 位置上的值表示从Series开始到当前位置(包括当前位置)的最小值。

Series.cummin(axis=None, skipna=True, *args, **kwargs)
描述说明
axis对于Series来说,这个参数不起作用,因为Series是一维的。在 DataFrame上使用时, axis=0(默认)表示按列计算, axis=1表示按行计算。
skipna布尔值,默认为True。如果为True,则在计算累积最小值时会忽略NaN 值;如果为False,则任何NaN值都会导致结果在该位置及之后的值都为NaN。
*args, **kwargs这些参数用于兼容性,通常不需要使用。
import pandas as pd

s = pd.Series([1, 2, None, 4, 5])

cumsum_series = s.cummin()
print(cumsum_series)

1.11、 cumsum

        用于计算Series中元素的累积和。该方法返回一个相同长度的Series,其中每个位置 上的值表示从Series开始到当前位置(包括当前位置)的所有元素的累加和。

Series.cumsum(axis=None, skipna=True, *args, **kwargs)
描述说明
axis对于Series来说,这个参数不起作用,因为Series是一维的。在 DataFrame上使用时, axis=0(默认)表示按列计算, axis=1表示按行计算。
skipna布尔值,默认为True。如果为True,则在计算累积和时会忽略NaN 值;如果为False,则任何NaN值都会导致结果在该位置及之后的值都为NaN。
*args, **kwargs这些参数用于兼容性,通常不需要使用。
import pandas as pd

s = pd.Series([1, 2, None, 4, 5])

cumsum_series = s.cumsum()
print(cumsum_series)

1.12、 cumprod

        用于计算Series中元素的累积乘积。该方法返回一个相同长度的Series,其中每个位 置上的值表示从Series开始到当前位置(包括当前位置)的所有元素的累积乘积。

Series.cumprod(axis=None, skipna=True, *args, **kwargs)
描述说明
axis对于Series来说,这个参数不起作用,因为Series是一维的。在 DataFrame上使用时, axis=0(默认)表示按列计算, axis=1表示按行计算。
skipna布尔值,默认为True。如果为True,则在计算累积乘积时会忽略NaN 值;如果为False,则任何NaN值都会导致结果在该位置及之后的值都为NaN。
*args, **kwargs这些参数用于兼容性,通常不需要使用。
import pandas as pd

s = pd.Series([1, 2, None, 4, 5])

cumprod_series = s.cumprod()
print(cumprod_series)

二、分组和聚合

2.1、groupby

        用于将Series中的数据分组,并允许你对这些分组进行操作,比如计算每个组的总 和、平均值、最大值、最小值等。

Series.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, observed=False, dropna=True)
描述说明
by确定分组依据,如果 by 是一个函数,它会在对象索引的每个值上调用。如 果传递了字典或Series,将使用这些对象的值来确定组。如果传递了长度等于所 选轴的列表或 ndarray,则直接使用这些值来确定组。
axis用于分组的轴。对于Series,这个参数通常设置为0(默认值),因为 Series是一维数据结构。
level如果索引是多级索引(MultiIndex),则此参数用于指定分组所依据的 级别,by和level同时只能存在一个,且必须存在一个。
as_index是否将分组键作为结果的索引,默认值为True。仅与DataFrame 输入相关。
sort是否对结果进行排序。默认值为 True。
group_keys是否在结果中包含分组键。默认值为 True。
observed是否仅包含实际观察到的分类值。默认值为 False。
dropna是否从结果中排除包含 NaN 的组。默认值为 True。
import pandas as pd

data = [10, 20, 10, 30, 20, 10]
series = pd.Series(data)

grouped = series.groupby(series).count()
print(grouped)

2.2、agg

        Series.agg() 方法用于对Series中的数据进行聚合操作。

Series.agg(func=None, axis=0, *args, **kwargs)
描述说明
func聚合函数或函数列表/字典。可以是一个函数名称(字符串),也可以是实 际的函数对象,或者是这些的列表或字典。如果是字典,则键将是输出列的名 称,值应该是应用于Series的函数。
axis整数或字符串,默认为0。由于Series是一维数据结构,这个参数实际上在 Series的上下文中不起作用。在DataFrame的上下文中,axis=0 表示按列进行 聚合, axis=1 表示按行进行聚合。
*args位置参数,可以传递给 func。
**kwargs关键字参数,可以传递给func。
import pandas as pd
s = pd.Series([1, 2, 3, 4, 5])

result = s.agg('mean')
print(result)  

result = s.agg(['max', 'min'])
print(result) 

result = s.agg({'Maximum': 'max', 'Minimum': 'min'})
print(result)  

def custom_agg(x, power):
    return (x ** power).sum()
result = s.agg(custom_agg, power=2)
print(result)

三、思维导图 

 


http://www.kler.cn/a/588147.html

相关文章:

  • 【JavaEE进阶】-- HTML
  • 射频前端模块(FEM)中的功率放大器(PA):关键作用与优化方法
  • 2025可视掏耳勺VS棉签:哪个挖耳朵更安全高效?
  • Codeforces 158B. Taxi
  • AI 应用开发工程师(Agent方向):打造未来的智能体架构!
  • C语言 —— 浮生百态 生灭有时 - 数组
  • 老牌软件,方便处理图片,量大管饱。
  • 73.HarmonyOS NEXT PicturePreviewImage组件深度剖析:高级功能扩展与性能优化策略(三)
  • 【大模型实战篇】使用GPTQ量化QwQ-32B微调后的推理模型
  • 破局者登场:中国首款AI原生IDE Trae深度解析--开启人机协同编程新纪元
  • 图——表示与遍历
  • Python文件管理
  • 神聖的綫性代數速成例題5. 矩陣運算的定義、轉置的性質、方陣多項式的概念
  • Arduino示例代码讲解:ArduinoISP
  • Spring AI整合DeepSeek、Ollama本地大模型
  • 【Git】--- 初识Git Git基本操作
  • 虚拟机下ubuntu进不了图形界面
  • SSM基础专项复习5——Maven私服搭建(2)
  • Spring Validation参数校验
  • LSTA: Long Short-Term Attention for Egocentric Action Recognition