pandas agg list 详细介绍
在数据分析中,pandas
是一个非常强大的 Python 数据处理库。本文将详细介绍 pandas
中的 agg
函数,这是一个用于聚合计算的函数,可以非常方便地对数据进行汇总分析。agg
函数可以接受一个函数或函数的列表,应用于 DataFrame 的一列或多列,从而实现数据的快速处理和分析。
1. agg
函数基础
agg
函数是 pandas
中用于聚合操作的核心函数之一。它允许用户对数据集进行多种统计汇总。在开始之前,我们首先需要导入 pandas
库,并创建一个简单的 DataFrame 作为示例。
示例代码 1: 创建 DataFrame
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)
Output:
示例代码 2: 使用 agg
进行单一函数聚合
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
result = df.agg('sum')
print(result)
Output:
2. 使用不同的聚合函数
agg
可以使用不同的聚合函数来处理数据,如 sum
, mean
, max
, min
等。
示例代码 3: 使用多个聚合函数
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
result = df.agg(['sum', 'mean'])
print(result)
Output:
示例代码 4: 对指定列使用聚合函数
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
result = df[['A', 'B']].agg('mean')
print(result)
Output:
3. 使用自定义函数进行聚合
agg
也支持使用自定义函数进行数据聚合,这为数据分析提供了极大的灵活性。
示例代码 5: 使用自定义函数聚合
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
def my_custom_function(x):
return x.max() - x.min()
result = df.agg(my_custom_function)
print(result)
Output:
4. 在不同的轴上应用聚合
agg
函数可以在不同的轴上应用,例如,可以在行或列上进行聚合。
示例代码 6: 在不同轴上应用聚合
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
result = df.agg('sum', axis=1)
print(result)
Output:
5. 使用字典进行列特定的聚合
当需要对不同的列应用不同的聚合函数时,可以使用字典来指定。
示例代码 7: 使用字典进行列特定的聚合
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
result = df.agg({'A': 'sum', 'B': 'mean', 'C': 'max'})
print(result)
Output:
6. 结合 groupby
使用 agg
agg
函数常与 groupby
结合使用,以对分组后的数据进行聚合操作。
示例代码 8: 结合 groupby
使用 agg
import pandas as pd
df = pd.DataFrame({
'Key': ['A', 'B', 'A', 'B'],
'Data': [1, 2, 3, 4],
'Value': [5, 6, 7, 8]
})
result = df.groupby('Key').agg('sum')
print(result)
Output:
7. 多函数多列聚合
可以对一个 DataFrame 使用多个聚合函数,并指定这些函数应用于哪些列。
示例代码 9: 多函数多列聚合
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
result = df.agg({'A': ['sum', 'min'], 'B': ['mean', 'max']})
print(result)
Output:
8. 使用 agg
进行复杂的数据转换
agg
不仅限于简单的统计计算,还可以用于更复杂的数据转换。
示例代码 10: 使用 agg
进行复杂的数据转换
import pandas as pd
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8],
'C': [9, 10, 11, 12]
})
def transform(x):
return (x - x.mean()) / x.std()
result = df.agg(transform)
print(result)
Output:
总结
通过上述示例,我们可以看到 pandas
的 agg
函数是一个非常强大的工具,它可以应用于数据的各种聚合和转换任务。无论是简单的数据汇总还是复杂的自定义操作,agg
都能提供有效的解决方案。