Python Pandas DataFrame详解与使用示例
139 浏览量
更新于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等库,可以实现更复杂的数据分析任务。
547 浏览量
416 浏览量
1549 浏览量
点击了解资源详情
1030 浏览量
459 浏览量
点击了解资源详情
288 浏览量
160 浏览量

weixin_38516270
- 粉丝: 3
最新资源
- DICOM标准与医学影像通讯系统PACS研究
- Jboss EJB3.0 实例教程:从入门到精通
- JavaScript表单验证实例集锦
- Struts框架详解与标签库速查
- Oracle9i查询优化技术详解
- DWR中文教程:入门与实践
- C语言标准详解:x86/GNU/Linux版
- Herbinate示例:查询、分页与更新操作详解
- C#入门教程:从零开始学习
- 北京天路物流网站建设:信息平台与功能详解
- 大型制造企业网站构建与安全策略
- 旅行社网站建设策略:打造特色旅游平台
- DM9000E:集成Fast Ethernet MAC控制器与10/100 PHY的低成本解决方案
- IBM CICS系统管理与应用开发实战指南
- 主机面试必备:主流主机系统与优势解析
- Hibernate开发入门与实战指南