Pandas 数据查看选择与过滤

Pandas 数据查看选择与过滤

2026年9月20日·#编程学习/python学习笔记Python/数据分析·1167 字 6 分钟
浏览量加载中...
AI 摘要- DeepSeek

用 head/tail/describe/info 查看数据,用单列/多列/iloc/loc 选择数据,用条件表达式过滤数据

封面图
Pandas 数据查看选择与过滤 - 封面图

数据查看#

方法/属性作用
df.head(n)查看前 n 行数据(不写 n 默认 5)
df.tail(n)查看结尾 n 行数据
df.describe()数值列的统计描述(计数、均值、标准差、最值、四分位)
df.info()查看数据信息(列名、非空计数、数据类型)
df.shape属性,查看数据维度(行数, 列数)
df.columns属性,查看列名
Tip

拿到一份新数据,习惯动作是 head() 看长相 + info() 看有没有缺失 + describe() 看数值是否离谱。

数据选择#

选列#

df['列名'] # 单选一列(返回 Series)
df.列名 # 同上(列名是合法标识符时才能这么写)
df[['列1', '列2']] # 多选(注意里面是**列表**,返回 DataFrame)

选行:iloc 与 loc#

方法依据是否包含结束位置语法
df.iloc[start:stop:step]行号(第几行)不包含 stopdf.iloc[0:5] 取前 5 行
df.loc[start:stop:step]索引标签包含 stopdf.loc[6805677496:5888085066:2]
Warning

这是最容易混的一对:iloc 按”第几行”数、不含结尾;loc 按”索引值”找、含结尾。跟 Python 普通切片(不含结尾)一样的只有 iloc。

数据过滤#

语法:df[条件表达式],结果是满足条件的行。

# 1. 销售数量 >= 10 的订单
df[df['销售数量'] >= 10]
# 2. 产品类别是 食品 或 图书
df[df['产品类别'].isin(['食品', '图书'])]
# 3. 单价在 79-199 之间(between 默认包含两端)
df[df['单价'].between(79, 199)]
# 4. 多条件:并且用 &、或者用 |(每个条件都要加括号!)
df[(df['销售数量'] >= 8) & (df['单价'] >= 100)]
写法含义
df[df['列'] >= 值]单条件
df['列'].isin([值1, 值2])属于集合(多选一)
df['列'].between(a, b)在区间内
& / ``

相关#

练习题#

一、知识回顾(读完直接做下面的实践题)#

  1. 查看前 n 行用 df.head(n),查看末尾 n 行用 df.tail(n)
  2. 查看数值列统计描述用 df.describe();查看列名、非空计数、类型用 df.info()
  3. 选一列:df['列名'] 返回 Series;选多列:df[['列1','列2']] 返回 DataFrame
  4. 基于行号切片用 df.iloc(不包含结尾);基于索引标签切片用 df.loc(会包含结尾)
  5. 判断某列的值是否属于一个集合,用 df['列'].isin([...])
  6. 判断某列的值是否在区间内,用 df['列'].between(a, b)
  7. 多条件过滤时,“并且”用符号 &、“或者”用 |,且每个条件要用圆括号括起来

二、裸写题#

数据:data/sales.csv(列:订单号、产品类别、产品名称、销售数量、单价、客户所在城市、支付方式、订单日期)

  • 2-1 先看清数据长什么样 读取 data/sales.csv,打印前 5 行、行数与列数、以及数值列的统计描述。

    提示(先自己想,实在想不出再点开)

    一级 · 思路:三段式查看:看长相 → 看规模 → 看数值分布 二级 · 方法:head() / shape / describe() 三级 · 骨架:pd.read_csv('data/sales.csv')

    参考答案(做完再点开)
    import pandas as pd
    df = pd.read_csv('data/sales.csv')
    # 2-1
    print(df.head(5))
    print(df.shape)
    print(df.describe())
  • 2-2 选出需要的列 用两种写法选出”产品名称、单价”两列,并单独取出”产品名称”这一列,观察返回类型有什么不同。

    提示(先自己想,实在想不出再点开)

    一级 · 思路:一列是 Series,多列是 DataFrame 二级 · 方法:df['产品名称'] / df[['产品名称', '单价']] 三级 · 骨架:用 type() 打印类型对比

    参考答案(做完再点开)
    # 2-2
    print(type(df['产品名称'])) # <class 'pandas.core.series.Series'>
    print(type(df[['产品名称', '单价']])) # <class 'pandas.core.frame.DataFrame'>
  • 2-3 条件过滤 找出:① 销售数量 ≥ 10 的订单;② 产品类别是”食品”或”图书”的订单;③ 单价在 79~199 之间;④ 销售数量 ≥ 8 并且 单价 ≥ 100 的订单。

    提示(先自己想,实在想不出再点开)

    一级 · 思路:四种过滤各写一行,注意多条件的括号 二级 · 方法:比较运算 / isin([...]) / between(a, b) / (条件1) & (条件2) 三级 · 骨架:df[(df['销售数量'] >= 8) ____ (df['单价'] >= 100)]

    参考答案(做完再点开)
    # 2-3
    print(df[df['销售数量'] >= 10])
    print(df[df['产品类别'].isin(['食品', '图书'])])
    print(df[df['单价'].between(79, 199)])
    print(df[(df['销售数量'] >= 8) & (df['单价'] >= 100)])
  • 2-4 行切片 用 iloc 取前 5 行,再用 loc 取第 3 到第 5 行(按行索引标签),对比两者取到的行数。

    提示(先自己想,实在想不出再点开)

    一级 · 思路:iloc 数”第几行”、不含结尾;loc 看”索引值”、含结尾 二级 · 方法:df.iloc[0:5] / df.loc[2:4] 三级 · 骨架:打印 len() 对比

    参考答案(做完再点开)
    # 2-4
    print(len(df.iloc[0:5])) # 5 行
    print(len(df.loc[2:4])) # 3 行(含索引 2、3、4)

评论区

[ 标签 ]
# AI37# AI 编程2# AI工具1# AI绘图1# AI辅助开发2# Ajax7# Apifox1# AstrBot3# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# Cloudflare2# CloudFlare2# CloudFlare-ImgBed3# coc4# CSS10# DeepSeek6# deepseek2# DELETE1# Docker5# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML9# HTTP10# ImageManager1# Java23# java13# JavaScript11# JavaWeb113# JDBC7# JSON2# JUnit1# LangChain25# Linux4# Logback1# Maven17# Muse Spark1# Mybatis1# MyBatis18# MySQL45# MySql1# NapCat1# Node.js1# obsidian2# Obsidian5# OpenCode4# ORM1# PathVariable1# PicGo1# PyCharm1# Python70# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot37# SpringMVC5# SQL2# Streamlit5# Svelte2# TailwindCSS1# Telegram3# Tlias2# Vercel1# vscode2# Vue20# Waline3# Web3# WebDAV1# Web基础6# Web开发6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档10# 写作1# 函数2# 刷步数1# 前端52# 动态1# 动漫1# 包1# 单词2# 博客8# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 后端48# 图床6# 地图1# 备份2# 大模型1# 奇思妙想1# 存储1# 学习方法6# 学校1# 宝塔面板3# 宝宝10# 实战4# 对象1# 导航栏1# 工具2# 布局2# 开发1# 开发工具1# 开发规范1# 开心1# 异常处理1# 影视2# 微信1# 性能优化2# 总结1# 想法15# 感受1# 感悟11# 指南1# 提示词工程2# 插件5# 故障排除1# 效率工具2# 教程10# 数据分析9# 数据库27# 数据结构1# 文件操作2# 斩神1# 日常95# 日志框架1# 朋友圈1# 朱元璋1# 模块1# 模板1# 正则表达式2# 测试3# 游戏2# 爬虫7# 生活迁移1# 电影2# 电脑1# 碎碎念1# 视觉识别1# 类1# 类型注解1# 网络基础2# 网络教室1# 羊毛2# 脚本2# 脚本工具1# 自动化2# 蓝奏云1# 表单1# 订阅推荐2# 记录2# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载2# 运动1# 部署11# 部落冲突1# 配置1# 随机图1# 面向对象5# 音乐3# 音标1# 项目实战11# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]