码迷,mamicode.com
首页 > 编程语言 > 详细

python.pandas groupby根据最小值更改某列数据

时间:2019-07-16 18:21:12      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:zip   das   apply   改变   taf   修改   lambda   nat   color   

技术图片

根据outid列和course_no列对数据进行group_by然后count

想要获得count=3的分组中 score的最小值

并根据score最小值所在的行去修改另外一列

df2 = df.groupby(by=[outid,course_no],as_index=False).count()
a=df2[df2[id]>2]
c= DataFrame(list(zip(a[outid],a[course_no])))
c.columns=[outid,course_no]
b=pd.merge(c,df,on=[outid,course_no])
e=b.groupby([outid,course_no],as_index=False).apply(lambda t: t[t.score==t.score.min()])
g=list(e[id])
for i in  g:
    df.loc[df[id]==i,exam_natures_new]=4

思路是先筛选出count>2的outid和course_no

然后和原先的dataframe取交集

对交集再进行group by 取最小值

获得最小值的的id

将id放入list

遍历list改变原dataframe

python.pandas groupby根据最小值更改某列数据

标签:zip   das   apply   改变   taf   修改   lambda   nat   color   

原文地址:https://www.cnblogs.com/languid/p/11196292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!