Pandas中使用agg()函数计算平均值

Pandas中使用agg()函数计算平均值

参考:pandas agg average

Pandas是一个强大的Python数据分析库,它提供了丰富的数据结构和数据操作方法,使得数据分析变得更加简单和高效。本文将详细介绍如何使用Pandas的agg()函数来计算数据的平均值。agg()函数是一个非常灵活的方法,它允许对数据进行多种统计聚合操作,其中就包括计算平均值。

1. 基础使用

在开始之前,我们需要先导入Pandas库,并创建一个简单的DataFrame作为示例。

示例代码 1:创建DataFrame

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)
print(df)

Output:

Pandas中使用agg()函数计算平均值

示例代码 2:使用agg()计算所有列的平均值

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

average = df.agg("mean")
print(average)

Output:

Pandas中使用agg()函数计算平均值

2. 计算指定列的平均值

有时候我们只需要计算DataFrame中某几列的平均值。

示例代码 3:计算单列平均值

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

average_b = df['B'].agg("mean")
print(average_b)

Output:

Pandas中使用agg()函数计算平均值

示例代码 4:计算多列平均值

average_ab = df[['A', 'B']].agg("mean")
print(average_ab)

3. 使用自定义函数计算平均值

Pandas的agg()函数也支持使用自定义函数来进行聚合计算。

示例代码 5:自定义函数计算平均值

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

def custom_mean(data):
    return sum(data) / len(data)

average_custom = df.agg(custom_mean)
print(average_custom)

Output:

Pandas中使用agg()函数计算平均值

4. 同时计算多种统计量

agg()函数可以在单个调用中计算多个统计量,这使得数据分析更加高效。

示例代码 6:计算平均值和标准差

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

statistics = df.agg(['mean', 'std'])
print(statistics)

Output:

Pandas中使用agg()函数计算平均值

5. 分组后计算平均值

在数据分析中,我们经常需要对数据进行分组,然后对每个组进行统计计算。

示例代码 7:根据某列分组后计算平均值

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

df['Group'] = ['X', 'Y', 'X', 'Y', 'X']
grouped_avg = df.groupby('Group').agg('mean')
print(grouped_avg)

Output:

Pandas中使用agg()函数计算平均值

6. 多级列的平均值计算

当我们的DataFrame具有多级列(即列具有多个级别)时,agg()函数的使用方法略有不同。

示例代码 8:创建多级列DataFrame

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

multi_col_data = pd.DataFrame({
    ('A', 'Cat1'): [1, 2, 3, 4, 5],
    ('B', 'Cat2'): [5, 6, 7, 8, 9],
    ('C', 'Cat1'): [9, 8, 7, 6, 5]
})
multi_col_df = pd.DataFrame(multi_col_data)

示例代码 9:计算多级列的平均值

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

multi_col_avg = multi_col_df.agg('mean', level=0)
print(multi_col_avg)

7. 时间序列数据的平均值计算

对于时间序列数据,agg()函数同样适用。

示例代码 10:创建时间序列数据

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

timeseries_data = pd.date_range('20230101', periods=5)
timeseries_df = pd.DataFrame({'Date': timeseries_data, 'Value': [1, 2, 3, 4, 5]})
timeseries_df = timeseries_df.set_index('Date')
print(timeseries_df)

Output:

Pandas中使用agg()函数计算平均值

示例代码 11:计算时间序列数据的平均值

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

timeseries_data = pd.date_range('20230101', periods=5)
timeseries_df = pd.DataFrame({'Date': timeseries_data, 'Value': [1, 2, 3, 4, 5]})
timeseries_df = timeseries_df.set_index('Date')

timeseries_avg = timeseries_df.agg('mean')
print(timeseries_avg)

Output:

Pandas中使用agg()函数计算平均值

8. 复杂条件下的平均值计算

有时候我们需要在满足特定条件的情况下计算平均值。

示例代码 12:计算大于某个值的平均

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

timeseries_data = pd.date_range('20230101', periods=5)
timeseries_df = pd.DataFrame({'Date': timeseries_data, 'Value': [1, 2, 3, 4, 5]})
timeseries_df = timeseries_df.set_index('Date')

condition_avg = df[df['A'] > 2].agg('mean')
print(condition_avg)

Output:

Pandas中使用agg()函数计算平均值

9. 结合其他Pandas功能使用agg()

agg()函数可以与Pandas的其他功能如query(), apply()等结合使用,以实现更复杀的数据处理。

示例代码 13:结合query()使用agg()

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

timeseries_data = pd.date_range('20230101', periods=5)
timeseries_df = pd.DataFrame({'Date': timeseries_data, 'Value': [1, 2, 3, 4, 5]})
timeseries_df = timeseries_df.set_index('Date')

query_avg = df.query("A > 2").agg('mean')
print(query_avg)

Output:

Pandas中使用agg()函数计算平均值

示例代码 14:结合apply()使用agg()

import pandas as pd

data = {
    'A': [1, 2, 3, 4, 5],
    'B': [5, 6, 7, 8, 9],
    'C': [9, 8, 7, 6, 5]
}
df = pd.DataFrame(data)

timeseries_data = pd.date_range('20230101', periods=5)
timeseries_df = pd.DataFrame({'Date': timeseries_data, 'Value': [1, 2, 3, 4, 5]})
timeseries_df = timeseries_df.set_index('Date')

apply_avg = df.apply(lambda x: x[x > 2].mean()).agg('mean')
print(apply_avg)

Output:

Pandas中使用agg()函数计算平均值

10. 总结

本文详细介绍了如何使用Pandas的agg()函数来计算数据的平均值。通过多个示例代码,我们展示了agg()函数的基本用法、如何处理特定列、如何使用自定义函数、如何处理分组数据、多级列数据以及时间序列数据等。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程