Pandas数据选取与操作指南:列选择、修改与删除
69 浏览量
更新于2024-08-29
收藏 155KB PDF 举报
在机器学习和数据分析中,pandas是一个至关重要的库,它提供了高效的数据操作工具,使得数据预处理变得简单易行。本教程将详细讲解如何利用pandas进行数据选取操作。
首先,我们启动jupyter notebook并创建一个新的notebook。接着,我们需要导入pandas库,通常用`pd`作为别名,这样可以方便后续的代码编写。例如:
```python
import pandas as pd
```
接下来,我们可以使用字典来构建一个DataFrame对象。在这个例子中,我们创建了一个包含姓名、年龄和身高信息的数据框:
```python
data = {
'name': ['张三', '李四', '王五', '赵六'],
'age': [18, 19, 17, 20],
'height': [1.68, 1.73, 1.62, 1.55]
}
df = pd.DataFrame(data, columns=['name', 'age', 'height'])
```
此时,`df`是一个DataFrame对象,我们可以用它来访问和操作数据。获取特定列的数据有多种方法:
- 直接通过列名字符串访问:`df['name']` 返回的是一个Series对象,包含所有人的姓名。
- 通过属性访问:`df.age` 也可以获取年龄列,同样返回Series。
若想一次性选取多个列,可以传入一个列表,如 `df[['name', 'age']]`,这将返回一个新的DataFrame,包含所选的列。
在修改数据时,需要注意赋值操作可能会影响到原始数据框。例如,当我们尝试修改列的值时:
```python
names = df['name']
names[0] = '张三丰'
```
这将改变`names` Series的值,但不会改变原始DataFrame `df`。若想避免这种影响,需要在赋值前先复制列:
```python
names = df['name'].copy()
names[0] = '张无忌'
```
此时,修改`names`不会影响`df`。
pandas提供了多种方法来获取列的信息,例如`df.columns`可以获取所有列名,通过切片操作可以获取部分列名:
```python
df.columns[1:3] # 获取第2到第3列的列名
```
并可以用这些列名来选取相应的数据:
```python
df[df.columns[1:3]] # 选取第2到第3列的数据
```
在DataFrame中添加新列也很简单,例如:
```python
import datetime
df['year'] = datetime.datetime.now().year - df.age
```
这将根据每个人的年龄计算出生年份。
删除列可以使用`drop`函数,指定`axis=1`表示按列删除:
```python
df.drop('year', axis=1) # 删除'year'列
df.drop(['height', 'year'], axis=1) # 删除多列
```
另外,也可以使用切片形式删除列:
```python
df.drop(df.columns[1::2]) # 删除偶数位置的列
```
以上就是pandas在数据选取操作中的一些基本技巧,包括创建DataFrame、选取列、修改和删除列。在实际的数据分析和机器学习项目中,熟练掌握这些操作对于高效处理数据至关重要。
2017-12-26 上传
2022-11-28 上传
2023-06-12 上传
2023-05-19 上传
2023-06-11 上传
2023-05-25 上传
2023-07-17 上传
2023-05-14 上传
2023-09-21 上传
weixin_38675232
- 粉丝: 3
- 资源: 970
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展