Pandas入门:探索Series和DataFrame操作
需积分: 10 20 浏览量
更新于2024-09-06
收藏 5KB MD 举报
本文档介绍了Pandas库中的两个核心数据结构——Series对象和DataFrame(数据框),并详细阐述了它们的创建、操作和转换方法。
### 一、Series对象
1、生成
Series是Pandas中的一维数据结构,类似于Python的列表,但拥有自定义索引。创建Series可以通过传递一个列表或者数组:
```python
import pandas as pd
import numpy as np
s = pd.Series([1, 2, 'a']) # Series的首字母需要大写
```
生成的Series默认会自动为元素分配整数索引,若未指定索引,则从0开始递增。
2、切片
Series支持多种方式的切片操作:
- 一般索引:`s[0:8:2]` 可以通过指定开始、结束位置和步长来获取子集。
- 重命名索引:通过设置index参数可以为Series设置自定义索引,如`d = pd.Series(np.random.rand(5), index=list('abcde'))`,然后使用字符串索引来切片,例如`d['a':'c']`。
- 布尔索引:可以使用条件表达式作为索引,如`d[d > 0.2]`,这将返回满足条件的元素。
3、Series类型的转换
Series中的数据可以进行类型转换,主要通过`astype()`和`pd.to_numeric()`方法:
- `astype()`方法:允许我们指定目标数据类型,如`a.astype(np.float, errors='ignore')`。`errors`参数控制处理转换错误的方式,"ignore"表示忽略错误,"raise"则会在错误发生时抛出异常。
- `pd.to_numeric()`方法:此方法主要用于将字符串或对象序列转换为数字类型,`pd.to_numeric(a, errors='coerce')`,`errors`参数的取值还可以是'raise',表示在遇到不能转换的元素时抛出异常,'coerce'则会将无法转换的元素设为NaN。
### 二、DataFrame(数据框)对象
1、生成
DataFrame是二维表格型数据结构,可以理解为由多个Series组成的字典。创建DataFrame可以通过字典或者二维数组:
```python
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
```
2、导入外部文件
Pandas提供了便捷的读取和写入文件的功能,例如读取CSV文件:
```python
df_from_csv = pd.read_csv('file.csv')
```
3、查看数据框信息
可以使用`head()`,`info()`等方法查看DataFrame的基本信息:
```python
df.head() # 显示前5行数据
df.info() # 显示DataFrame的列名、数据类型和非空值数量
```
4、数据框对象的索引和切片
DataFrame支持行和列的索引与切片,如`df.loc[row_indexer, column_indexer]`或`df.iloc[row_indexer, column_indexer]`。
5、删除和新增
可以使用`drop()`方法删除行或列,`insert()`方法插入新列。
6、数据框修改列名
通过`rename()`方法可以修改DataFrame的列名:
```python
df.rename(columns={'old_name': 'new_name'}, inplace=True)
```
7、数据框对象的导出
使用`to_csv()`,`to_excel()`等方法将DataFrame保存到文件:
```python
df.to_csv('output.csv', index=False) # 不保存索引
```
Pandas库的Series和DataFrame是数据分析中常用的工具,它们提供了丰富的操作和转换功能,方便用户对数据进行预处理和分析。了解和熟练掌握这两个数据结构及其操作方法是进行高效数据处理的关键。
2021-04-06 上传
2021-02-01 上传
2023-08-18 上传
2024-03-08 上传
2024-03-08 上传
2024-03-08 上传
2024-03-08 上传
2023-08-18 上传
晓海xhl
- 粉丝: 8
- 资源: 30
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析