定义的函数不能正确迭代groupby。泰坦尼克号数据库和熊猫

时间:2016-11-02 23:41:50

标签: function pandas group-by

我还不习惯使用函数,所以我决定尝试创建一个(用于练习)打印出groupby对象的前五个组。我写的函数的问题是,它似乎打印出groupby对象的所有组,而不是前五个。我无法弄清楚错误。

x = Ticket_Names.groupby('Ticket')

def Groupby_func(y):
    a=0
    while a <=5:   #trying to use 'a' as a limiter, 
                   #to limit printing just the first five groups
        for i, j in y:
            print i,j
            a+=1


Groupby_func(x) # calling the function

因此,不是只打印前五个组,而是打印所有这些组(大约238个)。

我的数据框看起来像这样:

             Ticket       Name
PassengerId                                                           
258          110152     Cherry, Miss. Gladys
505          110152     Maioni, Miss. Roberta
760          110152     Lucy, Noel Martha Dye
586          110413     Taussig, Miss. Ruth
263          110413     Taussig, Mr. Emil
737          6608       Ford, Mrs. Edward 
93           5734       Chaffee, Mr. Herbert
906          5734       Chaffee, Mrs. Herbert 
746          5735       Crosby, Capt. Edward Gifford
541          5735       Crosby, Miss. Harriet 

groupby按票证对它们进行分组,因此在此示例集中,只会创建5-6个组,但在完整的数据帧中,将创建大约230-300个组。

当我运行上面的函数时,不是让它打印前五个组,而是打印似乎是groupby对象的所有组。

1 个答案:

答案 0 :(得分:1)

[g[1] for g in list(Ticket_Names.groupby('Ticket'))[:5]]

source