python分组聚合转换
时间: 2024-10-20 10:04:39 浏览: 18
在Python中,数据分组、聚合和转换通常是通过pandas库来完成的,它提供了一种方便的方式来处理和分析大量数据。以下是几个核心操作:
1. **分组**(Grouping):`groupby()`函数可以按照一个或多个列对数据集进行划分,形成一系列的小组(groups),每个小组内的行具有相同的键值。这有助于按特定条件对数据进行划分。
2. **聚合**(Aggregation):在分组后,你可以使用agg()函数对每个小组应用统计运算,如求和、平均数、计数等,生成新的汇总表格。例如,`df.groupby('column').mean()`会计算每个组中某一列的平均值。
3. **转换**(Transformation):除了简单的聚合,还可以进行更复杂的转换操作。比如,对每一组的数据进行数学运算、数据清洗、特征工程等。`transform()`函数可以应用于每个分组并返回一个新的DataFrame。
举个例子:
```python
import pandas as pd
# 假设我们有一个DataFrame df,包含'Name', 'Age', 'Score'三列
grouped = df.groupby(['Name'])['Score'].sum() # 按照姓名分组,然后计算分数总和
averages = df.groupby('Name')['Age'].mean() # 计算年龄平均值
# 创建新列,例如将原始分数除以年龄
new_df = df.assign(Conversion=(df['Score'] / grouped).round(2))
```
阅读全文