DataFrame.describe(self, percentiles=None, include=None, exclude=None)
生成描述性统计数据,总结数据集分布的集中趋势,分散和形状,不包括 NaN值。
分析数字和对象系列,以及DataFrame混合数据类型的列集。输出将根据提供的内容而有所不同。有关更多详细信息,请参阅以下注释。
参数: | percentiles : 列表类似数字,可选 要包含在输出中的百分位数。全部应该介于0和1之间。 默认值为 ,返回第25,第50和第75百分位数。 include : 'all',类似于 要包含在结果中的数据类型的白名单。被忽略了Series。 以下是选项: 'all':输入的所有列都将包含在输出中。 类似于dtypes的列表:将结果限制为提供的数据类型。 将结果限制为数字类型提交 要将其限制为对象列,请提交 字符串也可以以 (例如 要选择pandas分类列,请使用 None (default) :结果将包括所有数字列。 exclude : 类似于 要从结果中省略的黑色数据类型列表。被忽略了Series。 以下是选项: 类似于 要排除数字类型提交 请提交数据类型 (例如 要排除pandas分类列,请使用 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']))