真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【Pandas分組聚合】groupby()、agg()方法的使用-創(chuàng)新互聯(lián)

Pandas分組聚合
  • 創(chuàng)建一個dataframe結(jié)構(gòu)
  • 分組函數(shù) groupby()
    • 初識分組聚合
    • 多重行索引分組聚合
    • 對多列數(shù)據(jù)進行分組聚合
    • 綜合應(yīng)用
  • 聚合函數(shù) agg(aggregate)
    • 求 多列數(shù)據(jù) 的 多個指標
    • 對多列數(shù)據(jù)統(tǒng)計不同的指標
    • 對多列數(shù)據(jù)統(tǒng)計不同個數(shù)的指標
    • agg調(diào)用 自定義函數(shù)
    • 使用agg 調(diào)用numpy的統(tǒng)計指標

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,包括成都做網(wǎng)站、網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營銷策劃推廣、電子商務(wù)、移動互聯(lián)網(wǎng)營銷等。創(chuàng)新互聯(lián)為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)核心團隊十年專注互聯(lián)網(wǎng)開發(fā),積累了豐富的網(wǎng)站經(jīng)驗,為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹立了良好口碑。創(chuàng)建一個dataframe結(jié)構(gòu)
import pandas as pd

df = pd.DataFrame(
    data={'name': ['z_s', 'l_s', 'w_w', 'z_l', 'y_s', 'j_j', 'l_b', 'z_f', 'hs_q', 'lbl_k', 'qy_n', 'mg_n'],
        'score': [100, 97, 98, 89, 67, 59, 29, 87, 78, 89, 88, 80],
        'group': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2],
        'cls': ['A', 'A', 'A', 'B', 'B', 'B', 'A', 'A', 'A', 'B', 'B', 'B'],
        'height': [178.0, 180.0, 176.0, 182.0, 189.0, 190.0, 172.5, 175.0, 165.0, 160.0, 158.5, 159.0]
    },
    index=['stu_' + str(i) for i in np.arange(1, 13, 1)]
)
print('df:\n', df)

在這里插入圖片描述

分組函數(shù) groupby() 初識分組聚合

我們可以通過DataFrame.groupby(by=[”column“]) 方法對數(shù)據(jù)進行分組,再根據(jù)需求進行 聚合操作。

統(tǒng)計各個班的最高的成績:

# 先按照班級進行分組,再統(tǒng)計各個組里面的成績的大值!
ret = df.groupby(by=['cls'])['score'].max().reset_index()
print('ret:\n', ret)

在這里插入圖片描述
分開來看就是:

ret = df.groupby(by=['cls'])	# 將數(shù)據(jù)以 cls 進行分組,返回 DataFrameGroupBy 對象
print(ret)		#ret = ret['score']				# 取出 score 列,返回 SeriesGroupBy 對象
print(ret)		#ret = ret.max()					# 取出 score 中的大值,返回 Series 對象
print(ret)
"""
cls
A    100
B     89
Name: score, dtype: int64
"""
ret = ret.reset_index()			# 重設(shè)索引,返回 DataFrame 對象
print(ret)
"""
  cls  score
0   A    100
1   B     89
"""
多重行索引分組聚合

統(tǒng)計各個班的各個小組的最高成績

# 先按照班級分組,再按照小組分組,最后統(tǒng)計各個小組內(nèi)成績的大值
ret = df.groupby(by=['cls', 'group'])['score'].max()
print('ret:\n', ret)
print('index:\n', ret.index)	# MultiIndex ---多重行索引
ret = ret.reset_index()			# 重設(shè)索引
print(ret)

在這里插入圖片描述

對多列數(shù)據(jù)進行分組聚合

統(tǒng)計各個班級的成績、身高的平均值:

# 按照班級分組,統(tǒng)計各個組內(nèi) 成績、身高的平均值
ret = df.groupby(by=['cls'])[['score', 'height']].mean().reset_index()
print('ret:\n', ret)

在這里插入圖片描述

綜合應(yīng)用

統(tǒng)計各個班級、各個小組的成績、身高的平均值

# 先按照班級分組、再按照小組分組---統(tǒng)計各個小組內(nèi)的成績的平均值、身高的平均值
ret = df.groupby(by=['cls', 'group'])[['score', 'height']].mean().reset_index()
print('ret:\n', ret)

在這里插入圖片描述

聚合函數(shù) agg(aggregate)

在Pandas中,aggaggregate兩個函數(shù)指向同一個方法,使用時寫任意一個即可。

求 多列數(shù)據(jù) 的 多個指標

統(tǒng)計成績、身高的大值、均值

# 使用agg 方法 可以對多列數(shù)據(jù)一次性求出多個指標
ret = df.loc[:, ['score', 'height']].agg([np.max, np.mean])
print('ret:\n', ret)

在這里插入圖片描述

對多列數(shù)據(jù)統(tǒng)計不同的指標

統(tǒng)計成績的均值、同時統(tǒng)計身高的大值

ret = df.agg({'score': [np.mean], 'height': [np.max]})
print('ret:\n',ret)

在這里插入圖片描述

對多列數(shù)據(jù)統(tǒng)計不同個數(shù)的指標

統(tǒng)計成績的均值、大值、中位數(shù) 和 身高的均值

ret = df.agg({'score': [np.mean, np.max, np.median], 'height': [np.mean]})
print('ret:\n', ret)

在這里插入圖片描述


使用agg 方法也可以配合著 分組 對不同列、不同的數(shù)據(jù)、統(tǒng)計不同個數(shù)的 不同指標!

ret = df.groupby(by=['cls']).agg({'height': [np.max,np.mean], 'score': [np.min]})
print('ret:\n', ret)

在這里插入圖片描述

agg調(diào)用 自定義函數(shù)
ret = df.loc[:, 'score'].agg(lambda x: x + 1)
print('ret1:\n', ret)


def func_add_one(x):
    return x + 1

ret = df.loc[:, 'score'].agg(func_add_one)
print('ret2:\n', ret)

# 對多列 使用自定義函數(shù)
ret = df.loc[:, ['score', 'height']].agg(func_add_one)
print('ret3:\n', ret)

在這里插入圖片描述

使用agg 調(diào)用numpy的統(tǒng)計指標
# 統(tǒng)計所有同學(xué)成績的和
ret = df.loc[:, 'score'].agg(np.sum)
print('ret:\n',ret)
print('type:\n',type(ret))

# # 統(tǒng)計所有同學(xué) 成績以及身高 的和
ret = df.loc[:, ['score', 'height']].agg(np.sum)
print('ret:\n', ret)
print('type:\n',type(ret))

# 統(tǒng)計身高 + 成績(無意義的,只是為了演示能夠 同一行相加)
ret = df.loc[:, ['score', 'height']].agg(np.sum, axis=1)	# 使用axis指定相加的方向
print('ret:\n', ret)
print('type:\n',type(ret))

在這里插入圖片描述


除了以上方法之外,還可以使用自定義方法聚合,可以參見我的這篇文章:Pandas使用自定義方法

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


當前文章:【Pandas分組聚合】groupby()、agg()方法的使用-創(chuàng)新互聯(lián)
標題網(wǎng)址:http://weahome.cn/article/iecpe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部