前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >答疑解惑:用pandas的shift函数解决一个数据处理问题

答疑解惑:用pandas的shift函数解决一个数据处理问题

作者头像
可以叫我才哥
发布2021-09-24 15:56:41
4780
发布2021-09-24 15:56:41
举报
文章被收录于专栏:可以叫我才哥

大家好,我是才哥。

本系列将用于记录在日常中遇到的一些问题的答疑解惑,这些问题可能来自咱们可爱的粉丝又或者来自咱自己。行文会比较简洁,解决方案不一定最优,欢迎大家交流~

让我们正式开始吧!

今天有个粉丝问了一个Pandas数据处理问题,似曾相似,咱们一起看看吧!

问题

问题: df,有name,job两列, 筛选条件,job=0,并且这行name和上一行(前值)不同 把符合条件行的job从0改为1

我们就基于自己的思路,自己构建模拟数据直接开干了!

代码语言:javascript
复制
In [1]: import pandas as pd

In [2]: df = pd.read_clipboard()

In [3]: df
Out[3]: 
  name  job
0   小明    1
1   小明    0
2   华仔    0
3   小K    1
4  马里奥    0
5   花开    1
6   花开    0

In [4]: df.loc[(df['name']==df['name'].shift())&(df['job']==0), 'job'] = 1

In [5]: df
Out[5]: 
  name  job
0   小明    1
1   小明    1
2   华仔    0
3   小K    1
4  马里奥    0
5   花开    1
6   花开    1

由于需求是对比上一行的值,所以这里用到的是shift操作,默认情况下是向下移一位,然后就可以直接进行对比,再结合另外一个的值属性判断。满足条件的,我们直接将相关值进行赋值操作即可!

关于这个需求,我们还可以通过 遍历或者构建函数用apply等进行实现,这里就不做展开了,感兴趣的朋友可以自己试试!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 可以叫我才哥 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档