pandas 聚合 df.groupby.agg
#df.groupby.agg ( arg, *args, **kwargs )
#聚合:使用可呼叫、字串、dict或字串/可呼叫列表進行聚合
import pandas as pd
df = pd.DataFrame({'A':['a','a','b','c','b','c','d'],
'B':[4,5,3,6,7,3,2],
'C':[22,21,43,55,31,55,66],
'D':[123,223,441,554,234,665,772]})
print(df)
#分組
df_groupby = df.groupby('A')
print('組內的鍵值:\n{}'.format(df_groupby.groups.keys()))
print("觀察其中某組 'a':\n{}".format(df.iloc[df_groupby.groups['a']]))
print('檢視所有分組:')
for index,data in df_groupby:
print(index)
print(data)
#多列分組
df_grb_morecols = df.groupby(['A','B'])
print('組內的鍵值:\n{}'.format(df_grb_morecols.groups.keys()))
print("觀察其中某組 ('a', 4):\n{}".format(df.iloc[df_grb_morecols.groups[('a', 4)]]))
print('檢視所有分組:')
for index,data in df_grb_morecols:
print(index)
print(data)
#聚合
#預設情況對分組之後其他列進行聚合
df_agg = df.groupby('A').agg(['min','mean','max'])
print(df_agg)
#對分組後的部分列進行聚合
#某些情況,只需要對部分資料進行不同的聚合操作,可以通過字典來構建
num_agg = {'C':['min','mean','max']}
print('部分列進行聚合:\n{}'.format(df.groupby('A').agg(num_agg)))
num_agg = {'C':['min','mean','max'],'D':['min','max']}
print('部分列進行聚合:\n{}'.format(df.groupby('A').agg(num_agg)))
輸出結果:
A B C D
0 a 4 22 123
1 a 5 21 223
2 b 3 43 441
3 c 6 55 554
4 b 7 31 234
5 c 3 55 665
6 d 2 66 772
組內的鍵值:
dict_keys(['a', 'b', 'c', 'd'])
觀察其中某組 'a':
A B C D
0 a 4 22 123
1 a 5 21 223
檢視所有分組:
a
A B C D
0 a 4 22 123
1 a 5 21 223
b
A B C D
2 b 3 43 441
4 b 7 31 234
c
A B C D
3 c 6 55 554
5 c 3 55 665
d
A B C D
6 d 2 66 772
組內的鍵值:
dict_keys([('a', 4), ('a', 5), ('b', 3), ('b', 7), ('c', 3), ('c', 6), ('d', 2)])
觀察其中某組 ('a', 4):
A B C D
0 a 4 22 123
檢視所有分組:
('a', 4)
A B C D
0 a 4 22 123
('a', 5)
A B C D
1 a 5 21 223
('b', 3)
A B C D
2 b 3 43 441
('b', 7)
A B C D
4 b 7 31 234
('c', 3)
A B C D
5 c 3 55 665
('c', 6)
A B C D
3 c 6 55 554
('d', 2)
A B C D
6 d 2 66 772
B C D
min mean max min mean max min mean max
A
a 4 4.5 5 21 21.5 22 123 173.0 223
b 3 5.0 7 31 37.0 43 234 337.5 441
c 3 4.5 6 55 55.0 55 554 609.5 665
d 2 2.0 2 66 66.0 66 772 772.0 772
部分列進行聚合:
C
min mean max
A
a 21 21.5 22
b 31 37.0 43
c 55 55.0 55
d 66 66.0 66
部分列進行聚合:
C D
min mean max min max
A
a 21 21.5 22 123 223
b 31 37.0 43 234 441
c 55 55.0 55 554 665
d 66 66.0 66 772 772
>>>
相關文章
- Pandas 分組聚合操作詳解
- Pandas之:Pandas簡潔教程
- Pandas
- Pandas - pandas.Series.pipe 函式函式
- Pandas進階貳 pandas基礎
- python pandasPython
- Pandas Series
- pandas(四)
- pandas使用
- 聚合
- elasticsearch 聚合之 date_histogram 聚合ElasticsearchHistogram
- DDD之4聚合和聚合根
- Lesson6——Pandas Pandas描述性統計
- es筆記七之聚合操作之桶聚合和矩陣聚合筆記矩陣
- 領域設計:聚合與聚合根
- Pandas基礎
- Pandas入門
- pandas 列操作
- joyful pandas task
- jupyter-pandas
- Pandas概念(一)
- pandas用法大全
- Pandas fillna('Missing')
- 聚合類
- Elasticsearch 聚合Elasticsearch
- Pandas之:深入理解Pandas的資料結構資料結構
- Pandas缺失值處理 | 輕鬆玩轉Pandas(3)
- Elasticsearch聚合學習之二:區間聚合Elasticsearch
- 聚合支付代理如何去推廣聚合碼?!
- 【Pandas基礎教程】第02講 Pandas讀取資料
- DDD中聚合、聚合根的含義以及作用
- python excel pandas openpyxlPythonExcel
- Pandas - DataFrame.loc
- pandas:多層索引索引
- pandas小習題
- Pandas的使用技巧
- pandas用法總結
- Pandas DataFrame常用方法