開心生活站

位置:首頁 > 生活常識 > 

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的操作。

標籤:groupby pandas