Pandas在分组时获得另一列中的最少列

Pandas在分组时获得另一列中的最少列,第1张

Pandas在分组时获得另一列中的最少列

选项1 使用

transform

In [13]: dfc = df.groupby('y')['c']In [14]: df.assign(min=dfc.transform(min), max=dfc.transform(max))Out[14]:   c  y  max  min0  9  0    9    81  8  0    9    82  3  1    3    33  6  2    6    64  1  3    5    15  2  3    5    16  5  3    5    17  4  4    7    08  0  4    7    09  7  4    7    0

要么

In [15]: df['min' ] = dfc.transform('min')In [16]: df['max' ] = dfc.transform('max')

选项2 使用join和agg

In [30]: df.join(df.groupby('y')['c'].agg(['min', 'max']), on='y')Out[30]:   c  y  min  max0  9  0    8    91  8  0    8    92  3  1    3    33  6  2    6    64  1  3    1    55  2  3    1    56  5  3    1    57  4  4    0    78  0  4    0    79  7  4    0    7

选项3 使用合并和汇总

In [28]: df.merge(df.groupby('y')['c'].agg(['min', 'max']), right_index=True, left_on='y')Out[28]:   c  y  min  max0  9  0    8    91  8  0    8    92  3  1    3    33  6  2    6    64  1  3    1    55  2  3    1    56  5  3    1    57  4  4    0    78  0  4    0    79  7  4    0    7


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5617457.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存