Python pandas.DataFrame.describe函数方法的使用

pandas.DataFrame.describe() 是一个非常有用的方法,用于生成描述性统计数据。它可以快速显示数据集中数值型列的统计信息,并提供其他列的汇总统计数据(如非数值型列的频数等)。本文主要介绍一下Pandas中pandas.DataFrame.describe方法的使用。

DataFrame.describe(self, percentiles=None, include=None, exclude=None)

生成描述性统计数据,总结数据集分布的集中趋势,分散和形状,不包括 NaN值。

分析数字和对象系列,以及DataFrame混合数据类型的列集。输出将根据提供的内容而有所不同。有关更多详细信息,请参阅以下注释。

参数:

percentiles : 列表类似数字,可选

要包含在输出中的百分位数。全部应该介于0和1之间。

默认值为 ,返回第25,第50和第75百分位数。[.25, .5, .75]

include : 'all',类似于dtypesNone(默认值),可选

要包含在结果中的数据类型的白名单。被忽略了Series。

以下是选项:

'all':输入的所有列都将包含在输出中。

类似于dtypes的列表:将结果限制为提供的数据类型。

将结果限制为数字类型提交numpy.number

要将其限制为对象列,请提交numpy.object数据类型。

字符串也可以以select_dtypes

(例如df.describe(include=['O']))的方式使用。

要选择pandas分类列,请使用'category'

None (default) :结果将包括所有数字列。

exclude : 类似于dtypesNone(默认值),可选,

要从结果中省略的黑色数据类型列表。被忽略了Series。

以下是选项:

类似于dtypes的列表:从结果中排除提供的数据类型。

要排除数字类型提交numpy.number。要排除对象列,

请提交数据类型numpy.object。字符串也可以以select_dtypes

(例如df.describe(include=['O']))的方式使用。

要排除pandas分类列,请使用'category'

None (default):结果将不包含任何内容。

返回

Series或DataFrame

提供的Series或Dataframe的摘要统计信息。

Notes

对于数字数据,则结果的指数将包括count, mean,std,min,max以及下,50和上百分。默认情况下,百分位数较低,百分位数25较高75。该50百分比是一样的中位数。

为对象的数据(例如字符串或时间戳),则结果的指数将包括count,unique,top,和freq。这top 是最常见的价值。这freq是最常见的价值频率。时间戳还包括first和last项目。

如果多个对象值具有最高计数,那么 将从具有最高计数的那些中任意选择count和top结果。

对于通过a提供的混合数据类型DataFrame,默认情况下仅返回数字列的分析。如果数据框仅包含没有任何数字列的对象和分类数据,则默认情况下将返回对象和分类列的分析。如果include='all'作为选项提供,则结果将包括每种类型的属性的并集。

包括和排除参数可以被用于限制其列在DataFrame被分析的输出。分析a时会忽略这些参数Series。

例子

1)基本使用

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1],
    'C': ['a', 'b', 'c', 'a', 'b']
}

df = pd.DataFrame(data)

# 使用 describe 方法
result = df.describe()

# 打印结果
print(result)

2)包含非数值型列的描述性统计信息

import pandas as pd

# 创建一个示例 DataFrame
data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 4, 3, 2, 1],
    'C': ['a', 'b', 'c', 'a', 'b']
}

df = pd.DataFrame(data)

# 包含所有列的描述性统计
result_all = df.describe(include='all')

print(result_all)

3)描述一个数字类型的 Series

import pandas as pd

s = pd.Series([1, 2, 3])
print(s.describe())

4)描述一个时间戳类型的 Series

import numpy as np

s = pd.Series([
    np.datetime64("2000-01-01"),
    np.datetime64("2010-01-01"),
    np.datetime64("2010-01-01")
])
print(s.describe())

5)使用示例

import pandas as pd
import numpy as np


# 描述一个 DataFrame(默认只包含数字字段)
df = pd.DataFrame({
    'categorical': pd.Categorical(['d', 'e', 'f']),
    'numeric': [1, 2, 3],
    'object': ['a', 'b', 'c']
})
# 描述 DataFrame 中某个列的统计信息
print("\n描述 DataFrame 中某个列的统计信息(numeric 列):")
print(df.numeric.describe())

# 仅包括数字列的描述
print("\n仅包括 DataFrame 中数字列的描述:")
print(df.describe(include=[np.number]))

# 仅包括分类列的描述
print("\n仅包括 DataFrame 中分类列的描述:")
print(df.describe(include=['category']))

推荐阅读
cjavapy编程之路首页