開心生活站

位置:首頁 > 生活常識 > 

pandas,groupby

在Pandas中,社交領域將使用者根據畫像(性別、年齡)進行細分,研究使用者的使用情況和偏好等主要運用groupby完成。

pandas groupby

Groupby的基本原理:

在pandas中,實現分組操作的程式碼很簡單,僅需一行程式碼,在這裡,將上面的資料集按照company欄位進行劃分:

In [5]: group = data.groupby("company")

將上述程式碼輸入ipython後,會得到一個DataFrameGroupBy物件

In [6]: group

Out[6]: <pandas.core.groupby.generic.DataFrameGroupBy object at 0x000002B7E2650240>

那這個生成的DataFrameGroupBy是啥呢?對data進行了groupby後發生了什麼?ipython所返回的結果是其記憶體地址,並不利於直觀地理解,為了看看group內部究竟是什麼,這裡把group轉換成list的形式來看:

In [8]: list(group)

Out[8]:

[('A',   company  salary  age

  3       A      20   22

  6       A      23   33), 

 ('B',   company  salary  age

  4       B      10   17

  5       B      21   40

  8       B       8   30), 

 ('C',   company  salary  age

  0       C      43   35

  1       C      17   25

  2       C       8   30

  7       C      49   19)]

轉換成列表的形式後,可以看到,列表由三個元組組成,每個元組中,第一個元素是組別(這裡是按照company進行分組,所以最後分為了A,B,C),第二個元素的是對應組別下的DataFrame,整個過程可以圖解如下:

pandas groupby 第2張

總結來說,groupby的過程就是將原有的DataFrame按照groupby的欄位(這裡是company),劃分為若干個分組DataFrame,被分為多少個組就有多少個分組DataFrame。所以說,在groupby之後的一系列操作(如agg、apply等),均是基於子DataFrame的操作。

標籤:pandas groupby