当前位置: 首页 > news >正文

4. Pandas 数据选择、查询与修改

Pandas 数据选择、查询与修改

在数据分析过程中,数据选择与修改是最常见、最基础的操作之一。无论是从庞大的数据集中筛选出所需部分,还是对列进行新增、修改、删除,这些操作都直接影响后续的数据清洗与分析效率。本文将详细介绍 条件过滤、布尔索引、多条件查询 以及 新增、修改、删除列 的方法,并通过实例演示,帮助你快速掌握 Pandas 的核心数据处理技巧。


1. 条件过滤与布尔索引

在 Pandas 中,条件表达式常用于筛选数据。例如,我们可以基于数值、字符串等条件,快速提取符合要求的行。

import pandas as pddata = {'姓名': ['张三', '李四', '王五', '赵六'],'拼音': ['ZhangSan', 'LiSi', 'WangWu', 'ZhaoLiu'],'年龄': [23, 34, 29, 40],'城市': ['北京', '上海', '广州', '深圳']
}df = pd.DataFrame(data)
print(df)
   姓名        拼音  年龄  城市
0  张三  ZhangSan  23  北京
1  李四      LiSi  34  上海
2  王五    WangWu  29  广州
3  赵六   ZhaoLiu  40  深圳

1.1 按单条件过滤

# 筛选年龄大于30的人
df_age = df[df['年龄'] > 30]
print(df_age)
   姓名       拼音  年龄  城市
1  李四     LiSi  34  上海
3  赵六  ZhaoLiu  40  深圳

1.2 布尔索引

布尔索引是 Pandas 中非常灵活的筛选方式。首先通过条件生成布尔序列,然后再利用该序列进行过滤。

# 创建布尔序列
mask = df['城市'] == '北京'
print(mask)
0     True
1    False
2    False
3    False
Name: 城市, dtype: bool

使用布尔索引筛选:

# 使用布尔索引筛选
df_beijing = df[mask]
print(df_beijing)
   姓名        拼音  年龄  城市
0  张三  ZhangSan  23  北京

2. 多条件查询

在实际分析中,经常需要组合多个条件。Pandas 允许使用逻辑运算符:

  • &:与(and)
  • |:或(or)
  • ~:非(not)

注意:每个条件必须用括号括起来。

# 年龄大于25且城市为广州或深圳
df_multi = df[(df['年龄'] > 25) & (df['城市'].isin(['广州', '深圳']))]
print(df_multi)
   姓名       拼音  年龄  城市
2  王五   WangWu  29  广州
3  赵六  ZhaoLiu  40  深圳

3. 新增列

新增列可以通过常数赋值、运算结果或函数应用等方式实现。

3.1 通过常数新增列

df['性别'] = ['男', '女', '男', '女']
print(df)
   姓名        拼音  年龄  城市 性别
0  张三  ZhangSan  23  北京  男
1  李四      LiSi  34  上海  女
2  王五    WangWu  29  广州  男
3  赵六   ZhaoLiu  40  深圳  女

3.2 通过计算新增列

# 年龄增加 1
df['明年年龄'] = df['年龄'] + 1
print(df)
   姓名        拼音  年龄  城市 性别  明年年龄
0  张三  ZhangSan  23  北京  男    24
1  李四      LiSi  34  上海  女    35
2  王五    WangWu  29  广州  男    30
3  赵六   ZhaoLiu  40  深圳  女    41

4. 修改列

4.1 修改整列值

# 将拼音列全部改为大写
df['拼音'] = df['拼音'].str.upper()
print(df)
   姓名        拼音  年龄  城市 性别  明年年龄
0  张三  ZHANGSAN  23  北京  男    24
1  李四      LISI  34  上海  女    35
2  王五    WANGWU  29  广州  男    30
3  赵六   ZHAOLIU  40  深圳  女    41

4.2 修改部分值

# 将张三的年龄改为25
df.loc[df['姓名'] == '张三', '年龄'] = 25
print(df)
   姓名        拼音  年龄  城市 性别  明年年龄
0  张三  ZHANGSAN  25  北京  男    24
1  李四      LISI  34  上海  女    35
2  王五    WANGWU  29  广州  男    30
3  赵六   ZHAOLIU  40  深圳  女    41

5. 删除列

5.1 删除单列

# 删除单列
df.drop(columns=['明年年龄'], inplace=True)
print(df)
   姓名        拼音  年龄  城市 性别
0  张三  ZHANGSAN  25  北京  男
1  李四      LISI  34  上海  女
2  王五    WANGWU  29  广州  男
3  赵六   ZHAOLIU  40  深圳  女

5.2 删除多列

# 删除多列
df.drop(columns=['拼音', '性别'], inplace=True)
print(df)
   姓名  年龄  城市
0  张三  25  北京
1  李四  34  上海
2  王五  29  广州
3  赵六  40  深圳

6. 小结

本文介绍了 Pandas 中最常用的数据操作:

  1. 条件过滤与布尔索引:快速定位符合条件的行;
  2. 多条件查询:结合逻辑运算符实现复杂筛选;
  3. 新增列:可通过常数、计算或函数生成;
  4. 修改列:既能批量修改,也能针对特定条件修改;
  5. 删除列:灵活删除单列或多列。

掌握这些技巧,能够为后续的缺失值处理、分组聚合、透视分析等操作打下坚实基础,是 Pandas 数据处理的“第一步”。

http://www.dtcms.com/a/434311.html

相关文章:

  • React新闻发布系统 角色列表篇
  • 网站常用插件wordpress自定义应用
  • 衡水手机网站建设淮安市盱眙县建设局网站
  • iPhone美区账号登录指南:轻松下载ChatGPT应用
  • AI大模型:(三)1.6 Dify工作流快速搭建数据可视化助手
  • 软件/网站安全需要以及解决方法
  • 做设备推广的网站学做网站用谁的书
  • python 做网站速度网站建设及托管合同
  • Coze源码分析-资源库-编辑工作流-后端源码-数据存储/安全/错误
  • 什么是Java反射机制?
  • 使用Docker安装Neo4j
  • 建立网站的步骤筝晃湖南岚鸿官网深圳专业建设网站哪个公司好
  • 20软件测试需求分析评审
  • SQL 多表查询实用技巧:ON 和 WHERE 的区别速览
  • 网站备案 内容央企八大设计院
  • 从汇编角度看C++优化:编译器真正做了什么
  • 分布式专题——25 深入理解网络通信和TCP、IP协议
  • UV python多版本管理
  • Schema是什么?
  • 许昌做网站优化wordpress 控制每页显示文章数
  • MAX31865模块和PT100实现温度测量使用配置笔记教程
  • Elasticsearch MCP 服务器:与你的 Index 聊天
  • 【ROS2学习笔记】话题通信篇:话题通信再探
  • 网络编程中“地址重用(SO_REUSEADDR)”
  • 汕头网站建设推广厂家wordpress 响应式图片
  • Rust的错误处理
  • 可视化地图
  • Rust与C接口交互
  • 【C++实战(64)】C++ 邂逅SQLite3:数据库编程实战之旅
  • 泉州网页建站模板开发网址