gpt4 book ai didi

python - 仅在具有多索引的 Series 的一个级别上使用 agg 方法

转载 作者:太空宇宙 更新时间:2023-11-04 01:52:55 25 4
gpt4 key购买 nike

让我们从具有多索引的 Series 开始

import pandas as pd

s = pd.Series(range(10),
index=[
[i//2 for i in range(10)],
[i%5 for i in range(10)]
])

s.index

>>> MultiIndex(levels=[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4]],
codes=[[0, 0, 1, 1, 2, 2, 3, 3, 4, 4], [0, 1, 2, 3, 4, 0, 1, 2, 3, 4]])

如果我想要索引级别 0 的最小值,我可以简单地写

s.min(level=0)
>>> 0 0
1 2
2 4
3 6
4 8
dtype: int64

maxmin std 等相同

如果我将 agg 与单个函数一起使用,我什至会得到相同的结果,即 s.agg('min', level=0) 等同于之前的命令

但是,如果我传递一个函数列表,它就不起作用

s.agg(['min', 'max'], level=0)
>>>min 0
max 9
dtype: int64

有没有一种方法可以指定输出级别,其中 minmax 仅在第一个索引之后聚合?

最佳答案

这里可以使用 groupby 的扩展形式:

print (s.groupby(level=0).agg(['min', 'max']))
min max
0 0 1
1 2 3
2 4 5
3 6 7
4 8 9

关于python - 仅在具有多索引的 Series 的一个级别上使用 agg 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57571363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com