最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?groupby函數(shù)圖文詳解

 更新時間:2022年07月12日 09:07:31   作者:Vergil_Zsh  
pandas中DataFrame提供了一個靈活高效的groupby功能,它使你能以一種自然的方式對數(shù)據(jù)集進行切片、切塊、摘要等操作,下面這篇文章主要給大家介紹了關于Python?groupby函數(shù)詳解的相關資料,需要的朋友可以參考下

一、分組原理

核心:

1、不論分組鍵是數(shù)組、列表、字典、Series、函數(shù),只要其與待分組變量的軸長度一致都可以傳入groupby進行分組。

2、默認axis=0按行分組,可指定axis=1對列分組。

groupby()語法格式

DataFrame.groupby(by=None, axis=0, level=None, as_index=True, group_keys=True, squeeze=False,  observed=False, **kwargs)

groupby原理

groupby就是按XX分組,比如將一個數(shù)據(jù)集按A進行分組,效果如下

使用groupby實現(xiàn)功能

import numpy as np
import pandas as pd
 
data = pd.DataFrame({
    'name': ['Tom', 'Kaggle', 'Litter', 'Sam', 'Sam', 'Sam'],
    'race': ['B', 'C', 'D', 'E', 'B', 'C'],
    'age': [37.0, 61.0, 56.0, 87.0, 58.0, 34.0],
    'signs_of_mental_illness': [True, True, False, False, False, False]
})
 
data.groupby('race')

 返回結果如上  得到一個叫DataFrameGroupBy的東西,pandas不能直接顯示出來 可以調用list顯示出來

groupby()的配合函數(shù) 函數(shù) 適用場景備注.mean()均值.count()計數(shù).min()最小值.mean().unstack()求均值,聚合表的層次索引不堆疊.size()計算分組大小GroupBy的size方法,將返回一個含有分組大小的Series.apply().agg()

這里演示.mean()和.count()

# mean()
data.groupby('name')['age'].mean()
# count()
data.groupby('name')['age'].count()
data.groupby('age').count()

 也可以根據(jù)單鍵多列進行聚合

# 單鍵多列聚合
data.groupby('name')[['race','age',]].count()

 .agg操作 可以取多個函數(shù)進行選擇 有時候我們既需要平均值,有需要計數(shù)(也可是取一個)

agg為列表

print(data.groupby('name')['age'].agg(['mean']))
 
print(data.groupby('name')['age'].agg(['mean','count']))

也可以傳入字典,對組內不同列采取不同的操作

print(data.groupby('race').agg({'age': np.median, 'signs_of_mental_illness': np.mean}))

.apply()

可以使用我們自己所創(chuàng)建的函數(shù)

print('apply之前')
grouped = data.groupby('name')
for name, group in grouped:
    print(name)
    print(group)
print('\n')
print('apply之后')
print(data.groupby('name').apply(lambda x: x.head(2)))

 簡單操作基本介紹完成

有時候需要將聚合的另一列放到一起 并且取消鍵的重復值 這個時候可以這樣做

上面是構建的數(shù)據(jù),需要對訂購時間進行處理,這里我們是將月份+天數(shù)/30,然后對ID列進行去重,并將后面Time列計算的結果放到一起

import numpy as np
import pandas as pd
 
 
data = pd.read_excel('訂購時間預測2.xlsx')
def cut_m_d(x):
	return round(x.month + x.day / 30, 2)
 
data['m_d'] = data['Time'].apply(cut_m_d)
grouped = data.groupby('ID')
# 這一步是去重(ID),不去重會出現(xiàn)錯誤
result = grouped['m_d'].unique()
result2 = result.reset_index()
print(result2)

總結

到此這篇關于Python groupby函數(shù)詳解的文章就介紹到這了,更多相關groupby函數(shù)詳解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論

定结县| 久治县| 呼图壁县| 建始县| 体育| 治县。| 界首市| 东莞市| 昭觉县| 阳泉市| 微博| 彭州市| 正阳县| 阳曲县| 两当县| 郎溪县| 都江堰市| 双牌县| 天峻县| 环江| 乐平市| 永平县| 元朗区| 读书| 张家港市| 光山县| 同心县| 什邡市| 大足县| 潞西市| 邵东县| 辽宁省| 赫章县| 临潭县| 明溪县| 建德市| 奉节县| 汾阳市| 宁明县| 台南县| 广宁县|