Pandas 数据分组聚合与年龄分类:代码解析与应用
该代码首先创建了一个包含姓名、年龄和工资的数据字典,然后使用数据字典创建了一个 DataFrame 对象 df。
接下来,使用 groupby 函数按照姓名对 DataFrame 进行分组,然后使用 agg 函数对每个分组进行聚合操作。通过传入一个字典,指定要对年龄列计算平均值,对工资列计算总和。最后将结果打印出来。
接着,使用 cut 函数将年龄列划分成不同的区间,并为每个样本添加一个年龄分类的列。通过传入 bins 参数指定区间的边界值,通过传入 labels 参数指定每个区间的标签。最后将 DataFrame 打印出来。
import pandas as pd
data = {'姓名': ['张飞', '李白', '关羽', '刘邦', '曹操'],
'年龄': [20, 25, 30, 35, 40],
'工资': [5000, 6000, 7000, 8000, 9000]}
df = pd.DataFrame(data)
grouped = df.groupby('姓名')
result = grouped.agg({'年龄': 'mean', '工资': 'sum'})
print(result)
bins = [0, 25, 35, 50]
labels = ['年轻', '中旬', '老']
df['年龄分类'] = pd.cut(df['年龄'], bins=bins, labels=labels)
print(df)
代码解读
-
创建 DataFrame
data = {'姓名': ['张飞', '李白', '关羽', '刘邦', '曹操'], '年龄': [20, 25, 30, 35, 40], '工资': [5000, 6000, 7000, 8000, 9000]}:创建包含姓名、年龄和工资的数据字典。df = pd.DataFrame(data):使用数据字典创建 Pandas DataFrame 对象。
-
分组聚合
grouped = df.groupby('姓名'):按照 '姓名' 列对 DataFrame 进行分组。result = grouped.agg({'年龄': 'mean', '工资': 'sum'}):对每个分组进行聚合操作,计算 '年龄' 列的平均值和 '工资' 列的总和。print(result):打印聚合结果。
-
年龄分类
bins = [0, 25, 35, 50]:定义年龄区间的边界值。labels = ['年轻', '中旬', '老']:定义每个区间的标签。df['年龄分类'] = pd.cut(df['年龄'], bins=bins, labels=labels):使用 cut 函数将 '年龄' 列划分成不同的区间,并创建新的 '年龄分类' 列。print(df):打印包含年龄分类的 DataFrame。
总结
该代码演示了使用 Pandas 进行分组聚合和数据分类的基本操作。通过对数据进行分组、聚合和分类,可以更深入地分析数据,提取有价值的信息。
原文地址: https://www.cveoy.top/t/topic/pau3 著作权归作者所有。请勿转载和采集!