首页 > 解决方案 > groupby.median() 和 groupby.transform('median') 有什么区别

问题描述

https://www.kaggle.com/kernels/fork/14393912

在 Kaggle 特征工程课程第 3 课第 5 节中,我尝试计算分组数据的中位数,然后我从下面的每个处理中发现了不同的结果。

result1 = df[['Neighborhood', 'GrLivArea']].groupby('Neighborhood')['GrLivArea'].median()
result2 = df[['Neighborhood', 'GrLivArea']].groupby("Neighborhood")["GrLivArea"].transform("median")

print(result1)
print(result2)

然后,结果1显示

Neighborhood
Bloomington_Heights                        1455.5
Blueste                                    1118.0
Briardale                                  1092.0
Brookside                                  1231.0
Clear_Creek                                1694.0
College_Creek                              1504.0
Crawford                                   1648.0
Edwards                                    1195.5
Gilbert                                    1560.0
Green_Hills                                1398.5
Greens                                     1226.0
Iowa_DOT_and_Rail_Road                     1128.0
Landmark                                   1320.0
Meadow_Village                             1092.0
Mitchell                                   1282.0
North_Ames                                 1200.0
Northpark_Villa                            1322.0
Northridge                                 2418.0
Northridge_Heights                         1832.0
Northwest_Ames                             1632.0
Old_Town                                   1374.0
Sawyer                                     1052.0
Sawyer_West                                1575.0
Somerset                                   1555.0
South_and_West_of_Iowa_State_University    1536.5
Stone_Brook                                1767.0
Timberland                                 1650.5
Veenker                                    1706.5
Name: GrLivArea, dtype: float64

但 result2 得到

0       1200.0
1       1200.0
2       1200.0
3       1200.0
4       1560.0
         ...  
2925    1282.0
2926    1282.0
2927    1282.0
2928    1282.0
2929    1282.0
Name: GrLivArea, Length: 2930, dtype: float64

可能,它们似乎是相同的过程,但它们中的每一个都显示出不同的聚合方式。(当然,DataFrame的结构不同但没关系。)

有什么区别?

标签: pandas

解决方案


推荐阅读