最近參加一個比賽,需要統計一些數據,使用了pandas。數據樣例如下圖所示:
user_id |
industry |
click_times |
0 | 1 | 2 |
0 | 1 | 1 |
0 | 2 | 2 |
1 | 1 | 2 |
1 | 2 | 6 |
這樣的數據記錄一共有3000w+,如果在沒使用pandas的相關的函數的時候,採用直接遍歷計算等方式,程序跑了三天沒有出結果。
想統計的數據:
統計每一個用戶在每一種industry上點擊次數的總和,統計結果樣式如下圖:
user_id |
industry |
click_sum |
0 | 1 | 3 |
0 | 2 | 2 |
1 | 1 | 2 |
1 | 2 | 6 |
對第一行統計結果稍微作解釋,我們從原數據中可以看出,前兩行都是 user_id =0 且 industry =1 ,所以總點擊次數等於 2+1 =3.
具體的做法:
result1= result.groupby(['user_id', 'industry'])['click_times'].sum().reset_index(name="click_sum")
result是原始數據讀取的Dataframe
result1則是統計結果
注:如果是想聚合之後求某列的平均值,則使用:
result1= result.groupby(['user_id', 'industry'])['click_times'].mean().reset_index(name="click_sum")