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

Python---数据分析(Pandas十:二维数组DataFrame统计计算一)

1、 count

        用于计算 DataFrame 中非 NaN 值的数量。

DataFrame.count(axis=0, numeric_only=False)
描述说明
axis

{0 或 ‘index’, 1 或 ‘columns’},决定统计的方向。

如果 axis=0 或 axis='index',则对每列进行计数,返回一个 Series,其 索引为列名,值为每列非 NaN 值的数量。

如果 axis=1 或 axis='columns',则对每行进行计数,返回一个 Series, 其索引为行索引,值为每行非 NaN 值的数量。

numeric_only是否只计算数值列中的非 NaN 值的数量,忽略非数值列,默认 为 False。
import pandas as pd
import numpy as np

# 创建一个包含 NaN 值的 DataFrame
df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': ['foo', 'bar', 'baz', np.nan]
})

print(df)

# 计算每列非 NaN 值的数量
count_per_column = df.count()
print("Count per column:")
print(count_per_column)

# 计算每行非 NaN 值的数量
count_per_row = df.count(axis=1)
print("\nCount per row:")
print(count_per_row)

# 只计算数值列的非 NaN 值的数量
count_numeric_only = df.count(numeric_only=True)
print("\nCount numeric only:")
print(count_numeric_only)
     A    B    C
0  1.0  5.0  foo
1  2.0  NaN  bar
2  NaN  NaN  baz
3  4.0  8.0  NaN
Count per column:
A    3
B    2
C    3
dtype: int64

Count per row:
0    3
1    2
2    1
3    2
dtype: int64

Count numeric only:
A    3
B    2
dtype: int64

2、 sum

        用于计算 DataFrame 中数值的总和。

DataFrame.sum(axis=0, skipna=True, numeric_only=False, min_count=0, **kwargs)
描述说明
axis

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认为 0。这个参数决定了求和是在 哪个轴上进行:

如果 axis=0 或 axis='index',则对每列进行求和,返回一个 Series,其 索引为列名,值为每列的总和。

如果 axis=1 或 axis='columns',则对每行进行求和,返回一个 Series, 其索引为行索引,值为每行的总和。

skipna布尔值,默认为 True。如果为 True,则在计算总和时会忽略 NaN 值。
numeric_only布尔值,默认为 False。如果为 True,则只对数值列进行求和, 忽略非数值列。
min_count默认为 0。这个参数指定了在计算总和之前,至少需要非 NaN 值的最小数量。如果某个分组中的非 NaN 值的数量小于 min_count,则结果为 NaN。
**kwargs其他关键字参数。这些参数通常用于兼容性或特殊用途,通常不需 要。
import pandas as pd
import numpy as np

# 创建一个包含 NaN 值的 DataFrame
df = pd.DataFrame({
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': ['foo', 'bar', 'baz', 'qux']
})

print(df)

# 计算每列的总和
sum_per_column = df.sum()
print("Sum per column:")
print(sum_per_column)


# 只计算数值列的总和
sum_numeric_only = df.sum(numeric_only=True)
print("\nSum numeric only:")
print(sum_numeric_only)

# 使用 min_count 参数
sum_with_min_count = df.sum(min_count=3)
print("\nSum with min_count=2:")
print(sum_with_min_count)
     A    B    C
0  1.0  5.0  foo
1  2.0  NaN  bar
2  NaN  NaN  baz
3  4.0  8.0  qux
Sum per column:
A             7.0
B            13.0
C    foobarbazqux
dtype: object

Sum numeric only:
A     7.0
B    13.0
dtype: float64

Sum with min_count=2:
A             7.0
B             NaN
C    foobarbazqux
dtype: object

3、 mean

        用于计算 DataFrame 中数值的平均值。

DataFrame.mean(axis=0, skipna=True, numeric_only=False, **kwargs)
描述说明
axis

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认为 0。这个参数决定了计算平均 值是在哪个轴上进行:

如果 axis=0 或 axis='index',则对每列进行计算,返回一个 Series,其 索引为列名,值为每列的平均值。

如果 axis=1 或 axis='columns',则对每行进行计算,返回一个 Series, 其索引为行索引,值为每行的平均值。

skipna布尔值,默认为 True。如果为 True,则在计算平均值时会忽略 NaN 值。
numeric_only布尔值,默认为 False。如果为 True,则只对数值列进行计算, 忽略非数值列。
**kwargs其他关键字参数。这些参数通常用于兼容性或特殊用途,通常不需 要。
import pandas as pd
import numpy as np
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
})
sum_per_column = df.mean()
print("mean per column:")
print(sum_per_column)
mean per column:
A    2.5
B    6.5
dtype: float64

4、 median

        用于计算 DataFrame 中数值的中位数。

DataFrame.median(axis=0, skipna=True, numeric_only=False, **kwargs)
描述说明
axis

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认为 0。这个参数决定了计算中位数是在哪个轴上进行:

如果 axis=0 或 axis='index',则对每列进行计算,返回一个 Series,其 索引为列名,值为每列的中位数。

如果 axis=1 或 axis='columns',则对每行进行计算,返回一个 Series, 其索引为行索引,值为每行的中位数。

skipna布尔值,默认为 True。如果为 True,则在计算中位数时会忽略 NaN 值。
numeric_only布尔值,默认为 False。如果为 True,则只对数值列进行计算, 忽略非数值列。
**kwargs其他关键字参数。这些参数通常用于兼容性或特殊用途,通常不需 要。
import pandas as pd
import numpy as np
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
})
sum_per_column = df.median()
print("median per column:")
print(sum_per_column)
mean per column:
A    2.5
B    6.5
dtype: float64

5、 min

        用于计算 DataFrame 中数值的最小值。

DataFrame.min(axis=0, skipna=True, numeric_only=False, **kwargs)
描述说明
axis

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认为 0。这个参数决定了计算最小值是在哪个轴上进行:

如果 axis=0 或 axis='index',则对每列进行计算,返回一个 Series,其 索引为列名,值为每列的最小值。

如果 axis=1 或 axis='columns',则对每行进行计算,返回一个 Series, 其索引为行索引,值为每行的最小值。

skipna布尔值,默认为 True。如果为 True,则在计算最小值时会忽略 NaN 值。
numeric_only布尔值,默认为 False。如果为 True,则只对数值列进行计算, 忽略非数值列。
**kwargs其他关键字参数。这些参数通常用于兼容性或特殊用途,通常不需 要。
import pandas as pd
import numpy as np
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
})
sum_per_column = df.min()
print("min per column:")
print(sum_per_column)
min per column:
A    1
B    5
dtype: int64

6、 max

        用于计算 DataFrame 中数值的最大值。

DataFrame.max(axis=0, skipna=True, numeric_only=False, **kwargs)
描述说明
axis

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认为 0。这个参数决定了计算最大值是在哪个轴上进行:

如果 axis=0 或 axis='index',则对每列进行计算,返回一个 Series,其 索引为列名,值为每列的最大值。

如果 axis=1 或 axis='columns',则对每行进行计算,返回一个 Series, 其索引为行索引,值为每行的最大值。

skipna布尔值,默认为 True。如果为 True,则在计算最大值时会忽略 NaN 值。
numeric_only布尔值,默认为 False。如果为 True,则只对数值列进行计算, 忽略非数值列。
**kwargs其他关键字参数。这些参数通常用于兼容性或特殊用途,通常不需 要。
import pandas as pd
import numpy as np
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
})
sum_per_column = df.max()
print("max per column:")
print(sum_per_column)
max per column:
A    4
B    8
dtype: int64

7 、var

        用于计算 DataFrame 中数值的方差。

DataFrame.var(axis=0, skipna=True, ddof=1, numeric_only=False, **kwargs)
描述说明
axis

{0 或 ‘index’, 1 或 ‘columns’, None}, 默认为 0。这个参数决定了计算方差是在哪个轴上进行:

如果 axis=0 或 axis='index',则对每列进行计算,返回一个 Series,其 索引为列名,值为每列的方差。

如果 axis=1 或 axis='columns',则对每行进行计算,返回一个 Series, 其索引为行索引,值为每行的方差。

skipna布尔值,默认为 True。如果为 True,则在计算方差时会忽略 NaN 值。
ddof整数,默认为 1。Delta Degrees of Freedom,计算样本方差时使用的无 偏估计的自由度修正。对于整个群体的方差, ddof 应该设置为 0。
numeric_only布尔值,默认为 False。如果为 True,则只对数值列进行计算, 忽略非数值列。
**kwargs其他关键字参数。这些参数通常用于兼容性或特殊用途,通常不需 要。
import pandas as pd
import numpy as np
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
})
sum_per_column = df.var()
print("var per column:")
print(sum_per_column)
var per column:
A    1.666667
B    1.666667
dtype: float64

 

相关文章:

  • SpringCloud介绍
  • SQL的DCL,DDL,DML和DQL分别是什么
  • 运维--个人打包脚本分享(Linux)
  • canvas数据标注功能简单实现:矩形、圆形
  • 2025年如何避免使用验证码求解器时被IP封禁
  • (每日一道算法题)翻转对
  • 基于 ECharts 实现动态图表渲染支持10万+数据点实时更新方案
  • Flutter使用自签证书打包ipa
  • Excel 小黑第19套
  • 基于springboot的美容院管理系统(044)
  • 深圳问顶安全科技有限公司asktopsec是做什么的?
  • 事件、页面跳转、wxml语法——微信小程序学习笔记
  • 【AI】Orin Nano+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功
  • How to share files with Windows via samba in Linux mint 22
  • MyBatisPlus(SpringBoot版)学习第二讲:基本CRUD
  • 安装PrettyZoo操作指南
  • JavaEE进阶---Mybatis(预编译SQL即时SQL动态SQL标签池化技术说明)
  • 堆的相关要点以及模拟实现
  • 快速部署Samba共享服务器作为k8s后端存储
  • 透析主流CSS预处理器的区别
  • 俄乌拟在土耳其举行会谈,特朗普:我可能飞过去
  • 马上评丨为护士减负,不妨破除论文“硬指标”
  • 来伊份:已下架涉事批次蜜枣粽产品,消费者可获额外补偿,取得实物后进一步分析
  • 专访|日本驻华大使金杉宪治:对美、对华外交必须在保持平衡的基础上稳步推进
  • 十大券商看后市|A股中枢有望逐步震荡抬升,把握结构性行情
  • 中方发布会:中美经贸高层会谈取得了实质性进展,达成了重要共识