python.pandas groupby根据最小值更改某列数据
Posted languid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python.pandas groupby根据最小值更改某列数据相关的知识,希望对你有一定的参考价值。
根据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根据最小值更改某列数据的主要内容,如果未能解决你的问题,请参考以下文章
Python Pandas:无法根据 groupby 在两个不同的列中返回字典
python pandas groupby分组后的数据怎么用