Pandas DataFrame describe() 方法
Python是进行数据分析的绝佳语言,主要是因为它拥有以数据为中心的Python软件包的出色生态系统。Pandas就是其中之一,它使导入和分析数据变得更加容易。
Pandas 数据框 describe()
Pandas describe()用于查看数据框或一系列数值的一些基本统计细节,如百分位数、平均值、标准差等。当将此方法应用于一系列字符串时,它会返回不同的输出,如下面的示例所示。
语法: DataFrame.describe(percentiles=None, include=None, exclude=None)
参数:
- 百分位数:列出 0-1 之间的数字数据类型,以返回相应的百分位数
- include:描述数据框时要包含的数据类型列表。默认值为 None
- exclude:描述数据框时要排除的数据类型列表。默认值为 None
返回类型:数据框的统计摘要。
创建 DataFrame 进行演示:
在以下示例中,使用的数据框包含一些 NBA 球员的数据。让我们通过导入数据来查看数据。
- Python3
import pandas as pd # reading and printing csv file data = pd.read_csv('nba.csv') print(data.head()) |
输出:
Name Team Number Position Age Height Weight College Salary 0 Avery Bradley Boston Celtics 0.0 PG 25.0 6-2 180.0 Texas 7730337.0 1 Jae Crowder Boston Celtics 99.0 SF 25.0 6-6 235.0 Marquette 6796117.0 2 John Holland Boston Celtics 30.0 SG 27.0 6-5 205.0 Boston University NaN 3 R.J. Hunter Boston Celtics 28.0 SG 22.0 6-5 185.0 Georgia State 1148640.0 4 Jonas Jerebko Boston Celtics 8.0 PF 29.0 6-10 231.0 NaN 5000000.0
在 Pandas 中使用 Describe 函数
通过在 DataFrame 上使用 describe(),我们可以轻松了解几个统计指标,包括平均值、中位数、标准差、四分位数等。
- Python3
print(data.descibe()) |
Number Age Weight Salary count 457.000000 457.000000 457.000000 4.460000e+02 mean 17.678337 26.938731 221.522976 4.842684e+06 std 15.966090 4.404016 26.368343 5.229238e+06 min 0.000000 19.000000 161.000000 3.088800e+04 25% 5.000000 24.000000 200.000000 1.044792e+06 50% 13.000000 26.000000 220.000000 2.839073e+06 75% 25.000000 30.000000 240.000000 6.500000e+06 max 99.000000 40.000000 307.000000 2.500000e+07
数值列说明说明:
count:非空值的总数
mean:列值的平均值
std:列值的标准差
min:列的最小值
25%:25百分位数
50%:50 百分位数
75%:75 百分位数
max:列的最大值
Pandas describe() 数字数据类型的行为
在此示例中,描述了数据框,并传递了 ['object'] 以包含一个参数来查看对象系列的描述。将 [.20, .40, .60, .80] 传递给百分位数参数以查看数字系列的相应百分位数。
- Python3
import pandas as pd data = pd.read_csv('nba.csv')
# removing null values to avoid errors data.dropna(inplace=True)
# percentile list perc = [.20, .40, .60, .80]
# list of dtypes to include include = ['object', 'float', 'int']
# calling describe method desc = data.describe(percentiles=perc, include=include)
# display desc |
输出:
Name Team Number Position Age \ count 364 364 364.000000 364 364.000000 unique 364 30 NaN 5 NaN top Avery Bradley New Orleans Pelicans NaN SG NaN freq 1 16 NaN 87 NaN mean NaN NaN 16.829670 NaN 26.615385 std NaN NaN 14.994162 NaN 4.233591 min NaN NaN 0.000000 NaN 19.000000 20% NaN NaN 4.000000 NaN 23.000000 40% NaN NaN 9.000000 NaN 25.000000 50% NaN NaN 12.000000 NaN 26.000000 60% NaN NaN 17.000000 NaN 27.000000 80% NaN NaN 30.000000 NaN 30.000000 max NaN NaN 99.000000 NaN 40.000000 Height Weight College Salary count 364 364.000000 364 3.640000e+02 unique 17 NaN 115 NaN top 6-9 NaN Kentucky NaN freq 49 NaN 22 NaN mean NaN 219.785714 NaN 4.620311e+06 std NaN 24.793099 NaN 5.119716e+06 min NaN 161.000000 NaN 5.572200e+04 20% NaN 195.000000 NaN 9.472760e+05 40% NaN 212.000000 NaN 1.638754e+06 50% NaN 220.000000 NaN 2.515440e+06 60% NaN 228.000000 NaN 3.429934e+06 80% NaN 242.400000 NaN 7.838202e+06 max NaN 279.000000 NaN 2.287500e+07
如输出图所示,Dataframe 的统计描述与分别传递的百分位数一起返回。对于包含字符串的列,数字运算将返回 NaN。
描述一系列字符串
在此示例中,通过 Name 列调用所描述的方法来查看具有对象数据类型的行为。
- Python3
# importing pandas module import pandas as pd
# making data frame data = pd.read_csv("nba.csv")
# removing null values to avoid errors data.dropna(inplace=True)
# calling describe method desc = data["Name"].describe()
# display desc |
输出:如输出图所示,describe() 的行为对于一系列字符串而言有所不同。在这种情况下,返回了不同的统计数据,如值计数、唯一值、顶部和发生频率。
count 457 unique 457 top Avery Bradley freq 1 Name: Name, dtype: object