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分组后的数据怎么用

Python pandas数据框根据条件分组

Python、Pandas:GroupBy 属性文档

如果在 groupby 中出现条件,则 Python (Pandas)

python [Pandas] .groupby包括NaN值