Python Pandas DataFrame详解与使用示例
130 浏览量
更新于2024-08-29
收藏 235KB PDF 举报
"Pandas库之DataFrame使用的学习笔记"
Pandas是Python中用于数据分析的重要库,而DataFrame是其核心数据结构之一,它提供了类似于电子表格或SQL表的功能。DataFrame可以处理二维数据,并允许存储多种类型的数据,如数值、字符串等。这种灵活性使得DataFrame在数据预处理、清洗、分析和可视化等任务中非常有用。
1. DataFrame的特性
- **二维数据结构**:DataFrame是二维表格形式的数据结构,包含行和列,每个单元格可以存储任意类型的数据。
- **列名和行名**:DataFrame具有可定制的列名(columns)和行名(index),这些标识符使得数据的访问和操作更为方便。
- **多类型数据**:与MATLAB矩阵不同,DataFrame的单元格可以存储数值、字符串、布尔值等多种类型的数据。
- **灵活的数据定位**:数据的访问可以通过列名、行名或位置进行。
2. 创建DataFrame
- **直接创建**:使用`pd.DataFrame()`函数创建DataFrame,参数包括数据(如numpy数组)、行索引(index)和列名(columns)。例如:
```python
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.random.randn(4,4), index=list('ABCD'), columns=list('ABCD'))
```
- **自定义数据**:如果数据量较小,可以直接输入列表创建DataFrame,指定行索引和列名。
```python
df2 = pd.DataFrame([[1,2,3,4], [2,3,4,5], [3,4,5,6], [4,5,6,7]],
index=['A', 'B', 'C', 'D'],
columns=['A', 'B', 'C', 'D'])
```
3. DataFrame的基本操作
- **数据访问**:可以通过索引或列名访问数据,如`df['列名']`或`df.loc['行名']`,也可以通过位置,如`df.iloc[行号, 列号]`。
- **添加/删除列**:可以使用`df['新列名'] = 数据`添加新列,`del df['列名']`或`df.drop('列名', axis=1)`删除列。
- **数据筛选**:利用布尔索引,如`df[df['列名'] > 值]`,可以筛选满足条件的行。
- **数据聚合**:使用`df.groupby('列名').agg(函数)`进行分组聚合,如求平均值、总和等。
- **数据合并**:`pd.concat([df1, df2])`可以将多个DataFrame水平合并,`df1.merge(df2, on='共享列名')`进行基于特定列的垂直合并。
4. 数据清洗与预处理
- **缺失值处理**:`df.fillna(value)`用于填充缺失值,`df.dropna()`删除含有缺失值的行或列。
- **数据类型转换**:`df['列名'].astype(data_type)`可以转换列的数据类型,如`int`、`float`或`str`。
- **数据排序**:`df.sort_values('列名', ascending=False)`按列值降序排序。
5. 数据分析与统计
- **描述性统计**:`df.describe()`提供列的统计摘要,包括计数、均值、标准差等。
- **相关性分析**:`df.corr()`计算列之间的相关系数。
- **频率分布**:`pd.cut(df['列名'], bins, labels)`可以对连续数据进行分箱,形成频率分布。
掌握DataFrame的使用是进行Python数据分析的基础,熟练运用这些功能可以大大提高数据处理的效率。在实际应用中,结合Numpy、Scipy等库,可以实现更复杂的数据分析任务。
2021-05-02 上传
2021-07-12 上传
2020-12-20 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2018-11-06 上传
2019-12-13 上传
weixin_38516270
- 粉丝: 3
- 资源: 1011
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库