25个例子学会Pandas Groupby 操作!("掌握Pandas Groupby操作:25个实用案例解析!")

原创
ithorizon 1个月前 (10-19) 阅读数 8 #后端开发

掌握Pandas Groupby操作:25个实用案例解析!

一、Pandas Groupby 简介

在数据分析中,分组操作是一项非常常见的任务。Pandas 是 Python 中用于数据分析的一个强盛库,其中的 Groupby 功能可以帮助我们高效地进行数据分组、聚合、转换等操作。本文将通过 25 个实用案例,帮助大家掌握 Pandas Groupby 的使用。

二、基本 Groupby 操作

案例 1:按单一列分组

import pandas as pd

data = {

'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],

'Age': [25, 30, 35, 40, 45],

'Salary': [5000, 6000, 7000, 8000, 9000]

}

df = pd.DataFrame(data)

grouped = df.groupby('Name')

print(grouped.sum())

案例 2:按多个列分组

grouped = df.groupby(['Name', 'Age'])

print(grouped.sum())

三、分组后的聚合操作

案例 3:计算分组后的总和

print(grouped.sum())

案例 4:计算分组后的平均值

print(grouped.mean())

案例 5:计算分组后的最大值

print(grouped.max())

案例 6:计算分组后的最小值

print(grouped.min())

案例 7:计算分组后的标准差

print(grouped.std())

案例 8:计算分组后的方差

print(grouped.var())

案例 9:计算分组后的计数

print(grouped.count())

四、分组后的转换操作

案例 10:计算每个组的总和,然后乘以 2

grouped_transformed = grouped.transform('sum') * 2

print(grouped_transformed)

案例 11:计算每个组的平均值,然后乘以 3

grouped_transformed = grouped.transform('mean') * 3

print(grouped_transformed)

案例 12:计算每个组的最大值,然后减去 1000

grouped_transformed = grouped.transform('max') - 1000

print(grouped_transformed)

五、分组后的合并操作

案例 13:合并分组后的总和和睦均值

grouped_sum = grouped.sum()

grouped_mean = grouped.mean()

merged = pd.concat([grouped_sum, grouped_mean], axis=1)

print(merged)

案例 14:合并分组后的最大值和最小值

grouped_max = grouped.max()

grouped_min = grouped.min()

merged = pd.concat([grouped_max, grouped_min], axis=1)

print(merged)

六、分组后的筛选操作

案例 15:筛选分组后平均工资大于 6000 的组

filtered = df.groupby('Name').filter(lambda x: x['Salary'].mean() > 6000)

print(filtered)

案例 16:筛选分组后工资总和大于 15000 的组

filtered = df.groupby('Name').filter(lambda x: x['Salary'].sum() > 15000)

print(filtered)

七、分组后的排序操作

案例 17:按工资总和对分组于是进行降序排序

grouped_sum = df.groupby('Name')['Salary'].sum()

sorted_grouped = grouped_sum.sort_values(ascending=False)

print(sorted_grouped)

案例 18:按工资平均值对分组于是进行升序排序

grouped_mean = df.groupby('Name')['Salary'].mean()

sorted_grouped = grouped_mean.sort_values(ascending=True)

print(sorted_grouped)

八、分组后的应用操作

案例 19:对每个组应用自定义函数计算工资总和的平方

def custom_func(group):

return group['Salary'].sum() ** 2

grouped_applied = df.groupby('Name')['Salary'].apply(custom_func)

print(grouped_applied)

案例 20:对每个组应用自定义函数计算工资总和与平均值的差

def custom_func(group):

return group['Salary'].sum() - group['Salary'].mean()

grouped_applied = df.groupby('Name')['Salary'].apply(custom_func)

print(grouped_applied)

九、纷乱 Groupby 操作

案例 21:对每个组按年龄分组,然后计算工资总和

grouped_complex = df.groupby(['Name', 'Age'])['Salary'].sum().reset_index()

print(grouped_complex)

案例 22:对每个组按年龄分组,然后计算工资平均值

grouped_complex = df.groupby(['Name', 'Age'])['Salary'].mean().reset_index()

print(grouped_complex)

案例 23:对每个组按年龄分组,然后计算工资总和,并筛选出总和大于 10000 的组

grouped_complex = df.groupby(['Name', 'Age'])['Salary'].sum().reset_index()

filtered = grouped_complex[grouped_complex['Salary'] > 10000]

print(filtered)

案例 24:对每个组按年龄分组,然后计算工资总和,并按总和进行降序排序

grouped_complex = df.groupby(['Name', 'Age'])['Salary'].sum().reset_index()

sorted_grouped = grouped_complex.sort_values(by='Salary', ascending=False)

print(sorted_grouped)

案例 25:对每个组按年龄分组,然后计算工资总和,并按总和进行降序排序,最后合并于是

grouped_complex = df.groupby(['Name', 'Age'])['Salary'].sum().reset_index()

sorted_grouped = grouped_complex.sort_values(by='Salary', ascending=False)

merged = pd.merge(df, sorted_grouped, on=['Name', 'Age'])

print(merged)

十、总结

Pandas Groupby 操作是数据分析中非常实用的工具,可以让我们迅速有效地对数据进行分组、聚合、转换等操作。通过以上 25 个案例,我们可以看到 Groupby 的强盛功能和多样性。掌握这些案例,可以帮助我们在实际工作中更加高效地处理数据。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门