总结pandas的数据筛选的操作,可类比于sql的select功能。
一、普通筛选
- 基础查看
df.head() # 前5行 df.tail() # 后5行 df.info() # 基本信息(包括缺失值) df.shape # 查看维度 df.index # 行索引 df.columns # 列索引 df.dtypes # 数据类型 df.describe() # 统计信息
复制
- 选取单个元素
df['a'][0] # 第0行,'a'列 df.iloc[0, 2] # 第0行,第2列 df.loc[0, 'a'] # 第0行,'a'列
复制
- 切片(多个元素)
df.iloc[1:, 1:2] # 行索引, 列索引(结果不包含2列) df.loc[:, 'a':'b'] # 行名, 列名(结果会包含b列)
复制
- 跳跃多选: lookup
# 返回数组[Aa索引出的值, Bb索引出的值] df.lookup(['A', 'B'], ['a', 'b'])
复制
- 删除数据
# 删除对应列 df.drop(['A', 'B'], axis=1)
复制
- 取该列数量最多的类别
df['A'].values_counts()#返回该列各个类别的数量 df['A'].values_counts().nlargest(3)#取类别数量最多的三类数据 df[~df['A'].isin(df['A'].values_counts().nlargest(3).index)]#选取总数据中符合:A列各类别数量前三 的数据
复制
- 查看该列有那些值
df['A'].unique()#查看该列值有哪些
复制
- 按数据类型筛选
df.select_dtypes(include='number')#选取包含数字的列 (object:字符型) df.select_dtypes(exclude='number')#选取不包含数字的列
复制
二、逻辑筛选(where)
- 索引
# 索引逻辑筛选 df[df['A']*2 == df['C']] df.query('A*2 == C') # 也可以`用query代替
复制
- isin(is in)
# 筛选条件:A列包含不包含空值的df df[~df['A'].isin(np.nan, None)]
复制
- contains(contains)
# 筛选条件:A列包含oracle的df df[df['A'].str.contains('oracle', case=False, na=False)] # 筛选条件:A列包含oracle的df df[df['A'].str.contains('1', case=False)] # case:是否忽略大小写
复制
- isnull() (is null)
# 筛选条件:非空 df[~df['A'].isnull()] df[~df['A'].isin(np.nan, None)]
复制
- where (if)
# where(筛选出满足条件的行, 不满足返回的值「默认是nan」) df.where(df['A']/2 == 0.5, 12)
复制
可以使用apply()实现sql的case when
三、随机抽样
# 随机抽样(n也可以用frac=0.3「随机抽取30%」) df.sample(n=10, replace=False) df1 = df.sample(frac=0.75, random_state=1234)#将75%的数据划分给df1 df2 = df.drop(df1.index)#删除从df中df1剩下df2
复制
最后修改时间:2020-07-08 18:36:27
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
[MYSQL] 服务器出现大量的TIME_WAIT, 每天凌晨就清零了
大大刺猬
178次阅读
2025-04-01 16:20:44
官宣,Milvus SDK v2发布!原生异步接口、支持MCP、性能提升
ZILLIZ
114次阅读
2025-04-02 09:34:13
[MYSQL] query_id和STATEMENT_ID在不同OS上的关系
大大刺猬
86次阅读
2025-03-26 19:08:13
用友畅捷通基于阿里云 MaxCompute 搭建智能数仓的落地实践
阿里云大数据AI技术
71次阅读
2025-04-09 09:58:18
什么是 OLAP 数据库?企业如何选择适合自己的分析工具
镜舟科技
48次阅读
2025-03-29 20:34:09
新发布 | 时序数据分析 AI 智能体来啦!
TDengine
48次阅读
2025-03-25 10:37:40
WingPro for Mac 强大的Python开发工具 v10.0.9注册激活版
一梦江湖远
45次阅读
2025-03-29 10:33:27
python操作MySQL数据库
怀念和想念
43次阅读
2025-03-30 23:22:07
【活动回顾】StarRocks Singapore Meetup #2 @Shopee
StarRocks
40次阅读
2025-03-27 10:22:40
如何高效使用 Text to SQL 提升数据分析效率?四个关键应用场景解析
镜舟科技
39次阅读
2025-04-15 18:58:40
TA的专栏
Java中间件
收录0篇内容
热门文章
一次Connection reset by peer的问题排查
2021-12-07 33928浏览
Java8-Stream: no instance(s) of type variable(s) R exist so that void conforms to R
2021-02-19 32354浏览
nginx: [emerg] "user" directive is not allowed here in /etc/nginx/conf.d/nginx.conf:1
2022-02-15 24266浏览
ORA-00904: "POLTYP": invalid identifier
2019-06-19 12929浏览
PageHelper排坑,处理排序失败: net.sf.jsqlparser.JSQLParserException
2022-05-19 12769浏览
目录