df.groupby(pd.Grouper(level=1)).sum()
df.groupby(pd.Grouper(level=1)).sum()
在 Python 中的作用是根据 DataFrame 的某一索引级别进行分组,并计算每个分组的总和。具体来说:
-
df.groupby(...)
:这是 pandas 的分组操作,按照指定的规则将 DataFrame 分组。 -
pd.Grouper(level=1)
:这里的pd.Grouper
用来指定按索引的某一层级进行分组。level=1
表示按索引的第二级进行分组。索引层级是从 0 开始的,所以level=1
指的是第二个索引级别。 -
.sum()
:在分组后,使用.sum()
来计算每个分组中所有数值型列的和。
示例:
假设你有一个具有多级索引的 DataFrame,像这样:
import pandas as pd
# 创建一个带有多级索引的示例 DataFrame
data = {
'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10]
}
index = pd.MultiIndex.from_tuples([
('2021-01-01', 'X'),
('2021-01-01', 'Y'),
('2021-01-02', 'X'),
('2021-01-02', 'Y'),
('2021-01-03', 'X')
], names=['Date', 'Group'])
df = pd.DataFrame(data, index=index)
print(df)
输出将是:
A B
Date Group
2021-01-01 X 1 6
Y 2 7
2021-01-02 X 3 8
Y 4 9
2021-01-03 X 5 10
当你执行 df.groupby(pd.Grouper(level=1)).sum()
时:
result = df.groupby(pd.Grouper(level=1)).sum()
print(result)
结果将会是:
A B
Group
X 9 24
Y 6 16
解释:
- 这里 DataFrame 根据
Group
索引级别进行分组。 - 然后,
A
和B
列的数值在每个分组内被求和。X
组的和是A=9
和B=24
,Y
组的和是A=6
和B=16
。