Pandas数据查看、选择与过滤

Pandas数据查看、选择与过滤

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

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

数据查看#

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

二、裸写题#

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

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

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

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

  • 2-2 选出需要的列 用两种写法选出”产品名称、单价”两列,并单独取出”产品名称”这一列,观察返回类型有什么不同。

    提示

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

  • 2-3 条件过滤 找出:① 销售数量 ≥ 10 的订单;② 产品类别是”食品”或”图书”的订单;③ 单价在 79~199 之间;④ 销售数量 ≥ 8 并且 单价 ≥ 100 的订单。

    提示

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

  • 2-4 行切片iloc 取前 5 行,再用 loc 取第 3 到第 5 行(按行索引标签),对比两者取到的行数。

    提示

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

参考答案(做完再点开)
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
print(type(df['产品名称'])) # <class 'pandas.core.series.Series'>
print(type(df[['产品名称', '单价']])) # <class 'pandas.core.frame.DataFrame'>
# 2-3
print(df[df['销售数量'] >= 10])
print(df[df['产品类别'].isin(['食品', '图书'])])
print(df[df['单价'].between(79, 199)])
print(df[(df['销售数量'] >= 8) & (df['单价'] >= 100)])
# 2-4
print(len(df.iloc[0:5])) # 5 行
print(len(df.loc[2:4])) # 3 行(含索引 2、3、4)

评论区

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

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

了解更多
[ 音乐 ]
封面

音乐

暂未播放

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