本文的主要内容是基于中国大学mooc(慕课)中的“Python数据分析与可视化”课程进行整理和总结。
pandas提供了一些数据统计分析的函数,这些函数使用于Series和DataFrame类型。
| 函数名 | 函数定义 |
|---|---|
| .sum() | 计算数据的总和,按照0轴计算,下同 |
| .count() | 非NaN的数量 |
| .mean() .median() | 计算数据的算术平均值,算数中位数 |
| .var() .std() | 计算数据的方差,标准差 |
| .min() .max() | 计算数据的最小值/最大值 |
还有一些函数只适用于Serise类型。
| 函数名 | 函数定义 |
|---|---|
| .argmin() argmax() | 计算数据最小值,最大值所在位置的索引(自动索引) |
| .idxmin() idmax() | 计算数据最小值,最大值所在位置的索引(自定义索引) |
自动索引的一个比较大的好处在于:自动索引是一个0-n的数,我们很容易的可以通过区间切片或者索引的方式获得我们需要的数据,而自定义索引很难形成一个序列,对其进行切片相对复杂或没有一定规律可循。
在Series和DataFrame类型中有一个方法囊括了所有方法的结果:
| 函数名 | 函数定义 |
|---|---|
| .describe() | 针对0轴(各列)的汇总统计 |
a = pd.Series([9, 8, 7, 6],index=['a','b','c','d'])
a
a 9
b 8
c 7
d 6
dtype: int64
a.describe()
count 4.000000
mean 7.500000
std 1.290994
min 6.000000
25% 6.750000
50% 7.500000
75% 8.250000
max 9.000000
dtype: float64
使用.describe()方法生成的是什么类型呢?
type(a.describe())
pandas.core.series.Series
可以发现,生成的就是一个Series类型,为此我们可以对其使用Series类型的方法。
a.describe()['count']
4.0
对于二维的DataFrame对象,我们也能使用.describe()方法。
b = pd.DataFrame(np.arange(20).reshape(4,5), index=['c', 'a', 'd', 'b'])
b.describe()
0 1 2 3 4
count 4.000000 4.000000 4.000000 4.000000 4.000000
mean 7.500000 8.500000 9.500000 10.500000 11.500000
std 6.454972 6.454972 6.454972 6.454972 6.454972
min 0.000000 1.000000 2.000000 3.000000 4.000000
25% 3.750000 4.750000 5.750000 6.750000 7.750000
50% 7.500000 8.500000 9.500000 10.500000 11.500000
75% 11.250000 12.250000 13.250000 14.250000 15.250000
max 15.000000 16.000000 17.000000 18.000000 19.000000
此时生成的值是按照0轴方向进行计算,也就是说生成的所有统计值是计算每一列统计值的信息。
type(b.describe())
pandas.core.frame.DataFrame
b.describe().loc['max']
0 15.0
1 16.0
2 17.0
3 18.0
4 19.0
Name: max, dtype: float64
b.describe()[2]
count 4.000000
mean 9.500000
std 6.454972
min 2.000000
25% 5.750000
50% 9.500000
75% 13.250000
max 17.000000
Name: 2, dtype: float64
2041



被折叠的 条评论
为什么被折叠?



