要按组对多级索引的DataFrame应用函数,可以使用groupby()
方法来分组,并使用apply()
方法来应用函数。
首先,创建一个多级索引的DataFrame示例:
import pandas as pd
# 创建多级索引DataFrame
index = pd.MultiIndex.from_tuples([('A', 'x'), ('A', 'y'), ('B', 'x'), ('B', 'y')])
columns = ['col1', 'col2']
data = [[1, 2], [3, 4], [5, 6], [7, 8]]
df = pd.DataFrame(data, index=index, columns=columns)
print(df)
输出结果为:
col1 col2
A x 1 2
y 3 4
B x 5 6
y 7 8
接下来,我们将按第一级索引"A"进行分组,并对每个组应用一个函数(例如,计算每个组的平均值):
# 按第一级索引分组,并应用平均值函数
result = df.groupby(level=0).apply(lambda x: x.mean())
print(result)
输出结果为:
col1 col2
A 2.0 3.0
B 6.0 7.0
在这个示例中,我们使用groupby(level=0)
来按第一级索引分组。然后,我们使用apply()
方法来应用一个函数,这里使用了lambda函数来计算每个组的平均值。最后,apply()
方法返回一个新的DataFrame,其中包含每个组的结果。
上一篇:按组对多个表进行聚合的SQL查询