python——当groupby遇到匿名函数

来源:互联网 发布:uuidgen windows 编辑:程序博客网 时间:2024/06/14 12:27

开发过程中遇到这样一种场景,dataframe按一列groupby之后,要对多列进行不同的操作。

例如:

In[25]: dfOut[25]:   name  price size0    A    100    M1    A     90    S2    B    100    M3    B    110    M4    B    120    L5    C     80    S6    C     70    S7    C     90    M8    C     60    S9    D    150    L

ABCD四个人,手下分别有2,3,4,1套房子,价格和大小也均有数据。

现在想分别找出每个人手上房子price最大的房子的size。

groupby+匿名函数可轻松搞定:

In[26]: df.groupby('name').apply(lambda sub:sub['size'][sub['price'].idxmax()])Out[26]: nameA    MB    LC    MD    Ldtype: object

emmmmm...如果我们想算每个人房子价格的总和除以房子数量的平方呢?(不要考虑是否有意义)

In[31]: df.groupby('name').apply(lambda sub:sub['price'].sum()/(sub['price'].count())**2)Out[31]: nameA     47B     36C     18D    150dtype: int64


确实很方便吧。




阅读全文
0 0
原创粉丝点击