在Pandas中,聚合函数agg()和transform()是非常有用的工具,它们可以帮助我们对数据进行各种类型的聚合操作。
1. agg()函数:这个函数可以让我们对DataFrame或Series中的数据应用一个或多个函数。它可以接受一个函数列表,然后返回一个新的DataFrame或Series,其中的值是原始数据应用这些函数的结果。例如,我们可以使用agg()函数来计算一个列的平均值、中位数和标准差:
```python
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
df['A'].agg([np.mean, np.median, np.std])
```
这将返回一个新的Series,其中包含'A'列的平均值、中位数和标准差。
2. transform()函数:这个函数与agg()函数类似,但是它返回的是一个与原始DataFrame形状相同的DataFrame。这意味着,我们可以使用transform()函数来应用一个函数,然后保留所有原始的行和列。例如,我们可以使用transform()函数来标准化一个DataFrame:
```python
df = pd.DataFrame({'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]})
df.transform(lambda x: (x - x.mean()) / x.std())
```
这将返回一个新的DataFrame,其中的值是原始数据减去每一列的平均值,然后除以每一列的标准差。新DataFrame的形状与原始DataFrame相同。
总的来说,agg()函数主要用于生成新的、更小的DataFrame或Series,而transform()函数则主要用于修改原始的DataFrame,而不改变其形状。