📜  Pandas DataFrame.count()(1)

📅  最后修改于: 2023-12-03 15:33:23.384000             🧑  作者: Mango

Pandas DataFrame.count()

在Pandas中, DataFrame.count()可以用来统计每一列(或行)中非空数据的数量。

语法
DataFrame.count(axis=0, level=None, numeric_only=False)
  • axis: 统计的轴向,默认为0,表示统计每一列的数量;若为1,则统计行数量。
  • level: 对于层级索引(MultiIndex)的数据结构,指定统计的级别。
  • numeric_only: 如果为True,则只统计数值类型列中的非空值数量。
返回值

返回一个Pandas Series,其中每个索引代表每一列/行的名字,对应的值为该列/行中非空数据的数量。

示例
import pandas as pd

data = {'name': ['Alice', 'Bob', '', 'David', 'Eva'],
        'age': [25, 30, 20, None, 27],
        'gender': ['F', 'M', 'M', 'M', 'F'],
        'score': [80, 75, 95, None, None]}

df = pd.DataFrame(data)

print(df.count())  # 默认统计每一列的数量

输出结果:

name      4
age       4
gender    5
score     3
dtype: int64

这里,'name'、'age'、'gender'、'score'四列中分别有4、4、5、3个非空数据。需要注意的是,由于第三列存在一个空字符串,因此其仍然被算做非空数据,并没有被统计在空值数量中。

如果我们想要统计每一行的非空数量,可以在 count()的参数中加入 axis=1

print(df.count(axis=1))

输出结果:

0    4
1    4
2    3
3    3
4    3
dtype: int64

第2行存在空字符串和空值,因此只有3个非空数据,其余行均有4个非空数据。

如果我们只对数值类型的列进行统计,可以加入 numeric_only=True 参数:

print(df.count(numeric_only=True))

输出结果:

age      4
score    3
dtype: int64

这里仅有 'age' 和 'score' 两列是数值类型的,它们中的非空数据数量分别是4和3。