Pandas教程:DataFrame对象的创建、修改与合并
5星 · 超过95%的资源 87 浏览量
更新于2024-08-29
收藏 47KB PDF 举报
本文主要介绍了Pandas库中的DataFrame对象,包括如何创建、修改和合并DataFrame对象,以及进行基本操作和计算的方法。
在Python的Pandas库中,DataFrame是一种二维表格型数据结构,它包含行索引和列标签,能够存储各种类型的数据。DataFrame对象在数据分析中扮演着核心角色,具有丰富的操作和功能。
1. 创建DataFrame对象:
- 可以通过列表、NumPy数组或字典来创建DataFrame。
- `pd.DataFrame(data, columns, index)` 是创建DataFrame的基本语法,其中`data`是数据,`columns`定义列名,`index`定义行索引。
- 示例:
- 使用列表创建:`df = pd.DataFrame([1, 2, 3, 4, 5], columns=['cols'], index=['a','b','c','d','e'])`
- 使用NumPy数组创建:`df3 = pd.DataFrame(np.array([[1,2],[3,4]]), columns=['col1','col2'], index=['a','b'])`
- 使用字典创建:`df4 = pd.DataFrame({'col1':[1,3],'col2':[2,4]}, index=['a','b'])`
2. 基本操作:
- `df.index` 返回DataFrame的行索引。
- `df.columns` 返回DataFrame的列名。
- `df.loc[row_indexer, column_indexer]` 根据标签(行索引和列名)访问数据。
- `df.iloc[row_indexer, column_indexer]` 根据整数位置访问数据。
- `df2.loc[['a', 'b']]` 访问多个行的索引数据。
- `df.loc[df.index[1:3]]` 根据索引范围访问数据。
- `df[['col1', 'col3']]` 选择特定列。
3. 数据修改:
- DataFrame可以通过索引或列名直接修改单个元素,如`df.loc['a', 'cols'] = value`。
- 也可以通过赋值修改整个列,如`df['new_col'] = values`。
4. 合并DataFrame对象:
- 可以使用`pd.concat()`、`pd.merge()`或`df.append()`函数来合并DataFrame。
- `pd.concat([df1, df2], axis=0)` 在行方向上堆叠多个DataFrame。
- `df1.append(df2)` 向DataFrame添加另一DataFrame作为新行。
5. 计算:
- DataFrame提供了多种内置计算方法,如求和、平均值、最大值等。
- `df.sum()` 对所有列的元素求和。
- `df.mean()` 计算各列的平均值。
- 还可以使用`df.apply()`和自定义函数对数据进行更复杂的计算。
6. 其他操作:
- `df.drop()` 删除指定行或列。
- `df.rename()` 更改列名。
- `df.groupby()` 对数据进行分组操作。
- `df.sort_values()` 对数据进行排序。
掌握这些基础操作方法将有助于有效地处理和分析DataFrame中的数据,从而在数据科学项目中实现高效的数据探索和预处理。
2021-12-25 上传
2020-09-19 上传
点击了解资源详情
2023-06-03 上传
2020-09-19 上传
2020-09-20 上传
2020-09-16 上传
2020-09-21 上传
2020-09-20 上传
weixin_38668243
- 粉丝: 5
- 资源: 956
最新资源
- Chrome ESLint扩展:实时运行ESLint于网页脚本
- 基于 Webhook 的 redux 预处理器实现教程
- 探索国际CMS内容管理系统v1.1的新功能与应用
- 在Heroku上快速部署Directus平台的指南
- Folks Who Code官网:打造安全友好的开源环境
- React测试专用:上下文提供者组件实现指南
- RabbitMQ利用eLevelDB后端实现高效消息索引
- JavaScript双向对象引用的极简实现教程
- Bazel 0.18.1版本发布,Windows平台构建工具优化
- electron-notification-desktop:电子应用桌面通知解决方案
- 天津理工操作系统实验报告:进程与存储器管理
- 掌握webpack动态热模块替换的实现技巧
- 恶意软件ep_kaput: Etherpad插件系统破坏者
- Java实现Opus音频解码器jopus库的应用与介绍
- QString库:C语言中的高效动态字符串处理
- 微信小程序图像识别与AI功能实现源码