Python 学习第 23 天,续上一篇《Python 数据分析 · Pandas 核心二 “DataFrame” (1)》(‾◡◝)
与 Series 一致,我们总结一下用 Python 进行 DataFrame 的描述性统计,以及一些其他常用操作。先创建一个 DataFrame :
import pandas as pd
df = pd.DataFrame(
{
\”Number\”:[f\”00{num}\” if len(str(num)) == 1 else f\”0{num}\” for num in range(1, 16)],
\”Name\”:[\”Emma\”, \”Liam\”, \”Chloe\”, \”Felix\”, \”Lila\”, \”Leo\”, \”Mia\”, \”Freya\”, \”Arlo\”, \”Elora\”, \”Finn\”, \”Wren\”, \”Olivia\”, \”Noah\”, \”Ava\”],
\”Chinese\”:[102.3, 72.1, 128.6, 89.5, 110.7, 98.2, 135.4, 78.9, 105.8, 85.3, 121.5, 92.7, 118.4, 81.6, 109.2],
\”Math\”:[112.5, np.nan, 98.7, None, 130.2, 88.4, 105.9, 122.8, 79.5, 118.3, 95.7, 135.1, 82.9, 108.6, 125.4],
\”English\”:[88.7, 115.3, np.nan, 132.8, None, 99.5, 108.2, np.nan, 120.7, 85.9, 110.4, None, 92.8, 128.5, 78.6],
}
)
print(df)
运行结果:
Number Name Chinese Math English
0 001 Emma 102.3 112.5 88.7
1 002 Liam 72.1 NaN 115.3
2 003 Chloe 128.6 98.7 NaN
3 004 Felix 89.5 NaN 132.8
4 005 Lila 110.7 130.2 NaN
5 006 Leo 98.2 88.4 99.5
6 007 Mia 135.4 105.9 108.2
7 008 Freya 78.9 122.8 NaN
8 009 Arlo 105.8 79.5 120.7
9 010 Elora 85.3 118.3 85.9
10 011 Finn 121.5 95.7 110.4
11 012 Wren 92.7 135.1 NaN
12 013 Olivia 118.4 82.9 92.8
13 014 Noah 81.6 108.6 128.5
14 015 Ava 109.2 125.4 78.6
一、描述性统计
描述性统计一般是针对数字的运算,除了常见描述 describe(),计数 count()、value_counts(),众数 mode() 这类可以概括整体数据情况或对数值的类型没有具体要求的函数外,其余函数都与计算有关,仅能计算数字类型的数值,常常用于将 DataFrame 中的某列提取出来,再计算其统计指标的情况。
特别地,我们需要注意 sum() 函数中的 \”+\” 对于字符串类型的数据意为 “拼接”,它就会有特殊的用法。
1. 常见描述性统计 describe()
代码示例:
df.describe()
运行结果:
ChineseMathEnglish
count15.00000013.00000011.000000
mean102.013333108.000000105.581818
std18.88733018.12999417.944070
min72.10000079.50000078.600000
25%87.40000095.70000090.750000
50%102.300000108.600000108.200000
75%114.550000122.800000118.000000
max135.400000135.100000132.800000
Click to add a cell.
2. 计数 count()
代码示例:
df.count()
运行结果:
Number 15
Name 15
Chinese 15
Math 13
English 11
dtype: int64
3. 求均值 mean()
代码示例:
df[\”Chinese\”].mean()
运行结果:
np.float64(102.01333333333334)
4. 求方差 var()
代码示例:
df[\”Chinese\”].var()
运行结果:
356.7312380952381
5. 求标准差 std()
代码示例:
df[\”Chinese\”].std()
运行结果:
18.88733009441086
6. 求分位数 quantile()
代码示例:
df[\”Chinese\”].quantile(0.25)
运行结果:
np.float64(87.4)
7. 求最小值 min()
代码示例 1:
df[\”Chinese\”].min()
运行结果 1:
72.1
代码示例 2:
df[\”Chinese\”].argmin() # 求最小值所在的行索引
运行结果 2:
np.int64(1)
8. 求中位数 median()
代码示例:
df[\”Chinese\”].median()
运行结果:
102.3
9. 求最大值 max()
代码示例 1:
df[\”Chinese\”].max()
运行结果 1:
135.4
&
