Pandas入门:Series与DataFrame操作详解
需积分: 15 46 浏览量
更新于2024-09-12
收藏 405KB PDF 举报
"这篇文档介绍了Pandas的基本用法,包括其核心数据结构Series和DataFrame,以及如何进行操作和创建。"
在Python的数据分析领域,Pandas是一个不可或缺的库,它构建于NumPy之上,提供了高效的数据处理能力。Pandas的核心在于它的两个主要数据结构:Series和DataFrame。
2.1 基本的数据结构
Pandas的Series是一种一维的数据结构,类似于带标签的数组。它可以存储各种数据类型(整数、字符串、浮点数、Python对象等)。而DataFrame则是一个二维表格型数据结构,包含了列名(columns)和行索引,可以看作是由Series组成的字典,其中每一列都是一个Series。
2.2 代码说明
在Jupyter Notebook中,通常我们会首先导入Pandas库,并用别名pd来引用,如`import pandas as pd`。之后就可以直接使用Series和DataFrame的构造函数来创建这些数据结构。
3.1 数据形式: Series vs List
Series在视觉上与列表不同,列表是水平排列的,而Series则是垂直排列的。Series中的每个元素都有一个对应的索引标签,这使得Series在数据操作时能更精确地定位。
3.2 元素的类型
Series中的元素可以是任意Python对象,提供了极大的灵活性。
3.3 创建Series, 用list
通过传递一个列表和可选的索引列表,可以创建Series。例如:`pd.Series([9, 3, 8])`,默认情况下,索引将是从0开始的整数序列。
3.4 自定义索引
创建Series时,可以通过提供自己的索引列表来指定索引,例如:`pd.Series([9, 3, 8], index=['a', 'b', 'c'])`。
3.5 根据索引查看及修改
可以使用索引来访问和修改Series中的值,如`series['a']`返回或设置索引为'a'的值。
3.6 创建Series, 用dict
通过字典可以创建Series,键将成为索引,值成为数据。例如:`pd.Series({'a': 1, 'b': 2, 'c': 3})`。
3.6.1 创建
字典的键和值分别对应Series的索引和元素。
3.6.2 自动对齐
当Series与字典或其他Series操作时,Pandas会自动对齐索引,确保相同索引的元素进行操作。
3.6.3 缺省值, NaN
如果字典中某些键不存在,对应的值将是NaN(Not a Number)。
3.7 判断是否为空
可以使用`isna()`或`notna()`方法检查Series是否为空。
3.8 更新索引
通过`reindex()`方法可以更改或扩展Series的索引。
4.1 DataFrame
DataFrame通过字典创建,其中字典的键是列名,值是Series或列表。例如:`pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})`。
4.2 columns的顺序
DataFrame的列顺序由输入字典中键的顺序决定。
4.3 自定义索引
可以使用`index`参数为DataFrame指定行索引。
4.4 索引值数目必须与行数相等
创建DataFrame时,索引数量应与数据列的数量相匹配。
4.5 缺省值, 赋NaN
未提供的值默认为NaN。
4.6 创建, 通过'字典套字典'
通过嵌套字典可以创建DataFrame,外层字典的键是列名,内层字典是行数据。
4.7 对象的属性及方法
DataFrame有很多内置的方法和属性,如`head()`, `tail()`, `describe()`等,用于查看和处理数据。
4.8 赋值, 一列统一赋值
可以使用列名来统一赋值,如`df['A'] = 0`。
4.9 赋值, 点对点
通过索引位置或标签可以点对点赋值,如`df.loc[0, 'A'] = 1`。
4.10 赋值, 更精准的修改
利用条件表达式或布尔索引可以进行更精准的赋值操作。
学习Pandas,尤其是掌握Series和DataFrame的基本操作,对于进行数据处理和分析至关重要。通过熟悉这些基础,可以更高效地组织和操作数据,实现数据分析任务。
2016-12-16 上传
2020-12-21 上传
2020-09-20 上传
2020-09-20 上传
点击了解资源详情
点击了解资源详情
2024-04-20 上传
淡尽浮华
- 粉丝: 11
- 资源: 2
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器