该代码首先创建了一个包含姓名、年龄和工资的数据字典,然后使用数据字典创建了一个 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)

代码解读

  1. 创建 DataFrame

    • data = {'姓名': ['张飞', '李白', '关羽', '刘邦', '曹操'], '年龄': [20, 25, 30, 35, 40], '工资': [5000, 6000, 7000, 8000, 9000]}:创建包含姓名、年龄和工资的数据字典。
    • df = pd.DataFrame(data):使用数据字典创建 Pandas DataFrame 对象。
  2. 分组聚合

    • grouped = df.groupby('姓名'):按照 '姓名' 列对 DataFrame 进行分组。
    • result = grouped.agg({'年龄': 'mean', '工资': 'sum'}):对每个分组进行聚合操作,计算 '年龄' 列的平均值和 '工资' 列的总和。
    • print(result):打印聚合结果。
  3. 年龄分类

    • bins = [0, 25, 35, 50]:定义年龄区间的边界值。
    • labels = ['年轻', '中旬', '老']:定义每个区间的标签。
    • df['年龄分类'] = pd.cut(df['年龄'], bins=bins, labels=labels):使用 cut 函数将 '年龄' 列划分成不同的区间,并创建新的 '年龄分类' 列。
    • print(df):打印包含年龄分类的 DataFrame。

总结

该代码演示了使用 Pandas 进行分组聚合和数据分类的基本操作。通过对数据进行分组、聚合和分类,可以更深入地分析数据,提取有价值的信息。

Pandas 数据分组聚合与年龄分类:代码解析与应用

原文地址: https://www.cveoy.top/t/topic/pau3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录