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()`函数可以将宽格式的数据透视为长格式。这些函数在数据处理和分析中非常实用,能够提高数据处理的效率。