在线文字转语音网站:无界智能 aiwjzn.com

Python使用PyJanitor的aggregate、groupby_agg、pivot_longer函数做数据聚合

准备工作: 1. 确保已安装Python及相关的开发环境。 2. 安装PyJanitor库:可以使用pip命令进行安装,在命令行中运行`pip install pyjanitor`。 依赖的类库: - pandas:用于数据处理和分析,PyJanitor基于pandas进行扩展。 数据样例: 我们使用一个销售数据集作为示例数据,包含订单号、产品类型、销售量和销售额。示例数据如下: | 订单号 | 产品类型 | 销售量 | 销售额 | |-------|---------|-------|-------| | 001 | A | 10 | 100 | | 002 | B | 5 | 50 | | 003 | A | 8 | 80 | | 004 | C | 3 | 30 | | 005 | B | 2 | 20 | 完整Python代码: python import pandas as pd import janitor # 创建示例数据框 data = { '订单号': ['001', '002', '003', '004', '005'], '产品类型': ['A', 'B', 'A', 'C', 'B'], '销售量': [10, 5, 8, 3, 2], '销售额': [100, 50, 80, 30, 20] } df = pd.DataFrame(data) # 使用aggregate函数聚合数据 summary = df.aggregate({ '销售量': 'sum', '销售额': 'mean' }) print("使用aggregate函数聚合数据:") print(summary) # 使用groupby_agg函数聚合数据 grouped_summary = df.groupby_agg(by='产品类型', agg={'销售量': 'sum', '销售额': 'mean'}) print(" 使用groupby_agg函数聚合数据:") print(grouped_summary) # 使用pivot_longer函数进行数据透视 pivoted_data = df.pivot_longer(index='订单号', column_names_to='指标', values_to='值', value_name_column='指标名称') print(" 使用pivot_longer函数进行数据透视:") print(pivoted_data) 代码解释: 1. 首先导入需要的类库,包括pandas和janitor。 2. 创建示例数据框df,包含订单号、产品类型、销售量和销售额。 3. 使用`df.aggregate()`函数对数据进行聚合操作,计算销售量的总和和销售额的平均值。 4. 使用`df.groupby_agg()`函数按产品类型对数据进行分组并进行聚合操作,计算每种产品类型的销售量总和和销售额平均值。 5. 使用`df.pivot_longer()`函数将宽格式的数据透视为长格式,指定index列为订单号,将列名转换为新的指标列,并将对应的值作为值列,同时添加一个新的指标名称列。 6. 打印聚合结果和透视结果。 总结: Python的PyJanitor库提供了一些方便的函数,用于对数据进行聚合和透视操作。使用`aggregate()`函数可以方便地对整个数据框进行聚合计算。`groupby_agg()`函数可以按指定的列进行分组聚合操作。`pivot_longer()`函数可以将宽格式的数据透视为长格式。这些函数在数据处理和分析中非常实用,能够提高数据处理的效率。