博客
关于我
Pandas中文官档~基础用法2
阅读量:795 次
发布时间:2023-02-26

本文共 4592 字,大约阅读时间需要 15 分钟。

描述性统计与pandas函数应用

在数据分析中,描述性统计是了解数据分布、趋势和特征的重要手段。pandas库提供了丰富的函数来实现描述性统计操作,这些函数涵盖了从基本的均值、标准差到更复杂的分位数、众数等多种统计量。

Series与DataFrame的描述性统计

Series和DataFrame支持大量描述性统计方法与操作。这些方法大部分是聚合函数,如sum()mean()quantile()等,其输出结果通常比原始数据集小。同时,还有输出结果与原始数据集同样大小的cumsum()cumprod()等函数。

示例操作
# DataFrame的描述性统计
In [1]: dfOut[1]: one two three
# 1.394981 1.772517 NaN
# 0.343054 1.912123 -0.050390
# 0.695246 1.478369 1.227435
# NaN 0.279344 -0.613172
In [2]: df.mean(0)Out[2]:one 0.811094two 1.360588three 0.187958dtype: float64
In [3]: df.mean(1)Out[3]:a 1.583749b 0.734929c 1.133683d -0.166914dtype: float64
关键参数skipna
  • skipna参数默认为True,用于指定是否忽略缺失值。
  • 例如:
    In [4]: df.sum(0, skipna=False)Out[4]:one           NaNtwo      5.442353three         NaNdtype: float64
    In [5]: df.sum(axis=1, skipna=True)Out[5]:a 3.167498b 2.204786c 3.401050d -0.333828dtype: float64
标准化操作
  • 通过减去均值并除以标准差,可以将数据标准化为零均值、单位标准差的形式。
  • 例如:
    In [6]: ts_stand = (df - df.mean()) / df.std()In [7]: ts_stand.std()Out[7]:one      1.0two      1.0three    1.0dtype: float64
cumsum()与cumprod()
  • cumsum()cumprod()函数保留缺失值的位置,与expanding()rolling()不同。
  • 例如:
    In [8]: df.cumsum()Out[8]:        one       two     three

# 1.394981 1.772517 NaN

1.738035 3.684640 -0.050390

2.433281 5.163008 1.177045

NaN 5.442353 0.563873

#### 常用函数汇总表
| 函数 | 描述 |
|------------|-----------------------------------------------------------------------|
| count | 统计非空值数量 |
| sum | 汇总值 |
| mean | 平均值 |
| mad | 平均绝对偏差 |
| median | 算术中位数 |
| min | 最小值 |
| max | 最大值 |
| mode | 众数 |
| abs | 绝对值 |
| prod | 乘积 |
| std | 样本标准偏差 |
| var | 无偏方差 |
| sem | 平均值的标准误差 |
| skew | 样本偏度(第三阶) |
| kurt | 样本峰度(第四阶) |
| quantile | 样本分位数(不同百分比的值) |
| cumsum | 累加 |
| cumprod | 累乘 |
| cummax | 累积最大值 |
| cummin | 累积最小值 |
#### 数据总结(describe())
- `describe()`函数计算Series和DataFrame的数据统计量,默认排除空值。
- 示例:
```python
In [9]: series = pd.Series(np.random.randn(1000))In [10]: series[::2] = np.nanIn [11]: series.describe()Out[11]:count 500.000000mean -0.021292std 1.015906min -2.68376325% -0.69907050% -0.06971875% 0.714483max 3.160915dtype: float64

最大值与最小值对应的索引(idxmax()与idxmin())

  • Series和DataFrame的idxmax()idxmin()函数返回最大值和最小值对应的索引。
  • 示例:
    In [12]: df3 = pd.DataFrame([2, 1, 1, 3, np.nan], columns=['A'], index=list('edcba'))In [13]: df3['A'].idxmin()Out[13]: 'd'

值计数(直方图)与众数(mode())

  • Series的value_counts()方法计算数据值的直方图。
  • 示例:
    In [14]: data = np.random.randint(0, 7, size=50)In [15]: dataOut[15]:array([6, 6, 2, 3, 5, 3, 2, 5, 4, 5, 4, 3, 4, 5, 0, 2, 0, 4, 2, 0, 3, 2,       2, 5, 6, 5, 3, 4, 6, 4, 3, 5, 6, 4, 3, 6, 2, 6, 6, 2, 3, 4, 2, 1,       6, 2, 6, 1, 5, 4])

In [16]: s = pd.Series(data)In [17]: s.value_counts()Out[17]:6 102 104 95 83 80 31 2dtype: int64

#### 离散化与分位数(cut()与qcut())
- `cut()`函数按值实现分箱,`qcut()`函数按样本分位数实现分箱。
- 示例:
```python
In [18]: arr = np.random.randn(20)In [19]: factor = pd.cut(arr, 4)In [20]: factorOut[20]:[(-0.251, 0.464], (-0.968, -0.251], (0.464, 1.179], (-0.251, 0.464], (-0.968, -0.251], ..., (-0.251, 0.464], (-0.968, -0.251], (-0.968, -0.251], (-0.968, -0.251], (-0.968, -0.251]]Length: 20Categories (4, interval[float64]): [(-0.968, -0.251] < (-0.251, 0.464] < (0.464, 1.179] < (1.179, 1.893]]

通过以上函数和方法,可以对数据集进行全面而详细的描述性统计,了解数据的分布特性和趋势方向。

转载地址:http://spvfk.baihongyu.com/

你可能感兴趣的文章
OSPF的安全性考虑:全面解析与最佳实践
查看>>
OSPF知识点大全,网络工程师快速收藏!
查看>>
ospf综合实验2 2012/9/8
查看>>
OSPF规划两大模型:双塔奇兵、犬牙交错
查看>>
OSPF认证
查看>>
OSPF设计原则,命令以H3C为例
查看>>
OSPF路由协议配置
查看>>
OSPRay 开源项目教程
查看>>
VC++实现应用程序对插件的支持
查看>>
OSS 访问图片资源报“No ‘Access-Control-Allow-Origin‘”的错误
查看>>
ossfs常见配置错误
查看>>
Ossim4系统故障处理
查看>>
Spring赌上未来:响应式的 WebFlux 框架更优雅,性能更强!
查看>>
oss报UnknownHost,k8s设置hostAliases参数
查看>>
OSS直传与UXCore-Uploader实践
查看>>
OS模块
查看>>
OS第1章
查看>>
OS第2章 —— 进程
查看>>
OS第3章 —— 进程调度和死锁
查看>>
OS第5章
查看>>