首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >懂Excel轻松入门Python数据分析包pandas(二十七):按条件选择,就是这么简单

懂Excel轻松入门Python数据分析包pandas(二十七):按条件选择,就是这么简单

作者头像
咋咋
发布2021-09-01 14:45:42
发布2021-09-01 14:45:42
1K0
举报
文章被收录于专栏:数据大宇宙数据大宇宙

此系列文章收录在公众号中:数据大宇宙 > 数据处理 > E-pd

经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas

numpy.where 方法

Excel 函数中有一个初学者都能马上学会的函数——IF 函数,而在 pandas 中却没有对应效果的方法,这是因为 numpy 已经有了对应的实现—— where。

他能根据条件(true 或者 false) 返回不同的值。由于需要使用 numpy 的方法,因此代码的开始需要导入 numpy 包:

代码语言:javascript
复制
import pandas as pd
import numpy as np

场景

如下学生成绩表:

  • 高于等于60分算合格,C列打上"是",否则打上"否"
  • 典型的根据条件选择某个值的需求

怎么解决

如此简单的需求,Excel 中一个 IF 函数轻松解决:

  • IF 函数第一参数是条件,第二参数是当第一条件为 true 时的返回,第三参数是当第一条件为 false 时的返回

在使用 numpy.where 方法时的逻辑与上述 Excel 的 IF 函数一致:

代码语言:javascript
复制
df = pd.read_excel('data.xlsx', 'sp1')
df['res'] = np.where(df.成绩>=60,'是','否')
df
  • 行2:np.where 各个参数都能接受 pandas 的列(Series)

性能优越

如果你看过本系列文章会发现,怎么当初入门 Python 的时候,学习的各种处理列表、字典的技巧全都用不上了。甚至 if、for 循环都很少用到了。

在 pandas 中其实也可以选择用 Python 的基本语法处理。

比如上面的例子,我们可以用 apply:

代码语言:javascript
复制
df = pd.read_excel('data.xlsx', 'sp1')

def ap_where(x):
    if x >= 60:
        return '是'
    return '否'

df['res'] = df.成绩.apply(ap_where)
df
  • 但是,上述代码的执行性能与直接使用 numpy 或 pandas 内置方法,会差上几十上百倍

总结

本文重点:

  • numpy.where 函数的使用方式与 Excel 的 IF 函数一致
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • numpy.where 方法
  • 场景
  • 怎么解决
  • 性能优越
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档