Pandas中的groupby方法是一種強(qiáng)大的數(shù)據(jù)聚合工具障癌,可以對(duì)數(shù)據(jù)進(jìn)行分組阅酪、聚合和轉(zhuǎn)換等操作。下面是一些groupby的例子:
- 創(chuàng)建一個(gè)示例數(shù)據(jù)集
import pandas as pd
data = {'Animal': ['Dog', 'Cat', 'Dog', 'Cat', 'Dog', 'Cat', 'Dog', 'Dog'],
'Name': ['Max', 'Tiger', 'Rocky', 'Kitty', 'Molly', 'Lucy', 'Buddy', 'Charlie'],
'Age': [3, 4, 2, 1, 5, 6, 4, 2],
'Weight': [25, 15, 20, 10, 30, 18, 22, 28]}
df = pd.DataFrame(data)
- 按Animal列分組并計(jì)算平均值
grouped = df.groupby('Animal').mean()
print(grouped)
輸出結(jié)果:
Age Weight
Animal
Cat 3.5 14.3
Dog 3.5 24.2
- 按Animal列分組并計(jì)算每組的大小
# 按Animal列分組并計(jì)算每組的大小
grouped = df.groupby('Animal').size()
print(grouped)
輸出結(jié)果:
AnimalCat 4
Dog 4
dtype: int64
- 定義一個(gè)自定義函數(shù)坟桅,用于計(jì)算每個(gè)組的最大年齡和最小體重之和
def my_func(group):
return group['Age'].max() + group['Weight'].min()
# 按Animal列分組并應(yīng)用自定義函數(shù)
grouped = df.groupby('Animal').apply(my_func)
print(grouped)
輸出結(jié)果:
Animal
Cat 11
Dog 25
dtype: int64