如何使用多索引对 pandas 系列进行位置索引
How to do positional indexing on a pandas series with multi-index
我有一个系列
s
card city
c1 t1 0.500000
t2 0.250000
t3 0.250000
c2 t2 0.666667
t1 0.333333
Name: city, dtype: float64
我想获取每个 card
的顶部(或第 n 个)city
条目。我基本上想要 s.iloc[:,n]
类型的东西,即一种使用多索引对 pandas 系列进行位置索引的方法。我正在使用 pandas-1.3.2
.
您可以使用 groupby.head
:
s.groupby(level='card').head(1)
card city
c1 t1 0.500000
c2 t2 0.666667
Name: city2, dtype: float64
要获取每个组的 n-th
个条目,请先 group
然后在每个组中使用 iloc
。例如,要获取每张卡片的第二个条目:
n = 1
(s.groupby(level='card', group_keys=False)
.apply(lambda g: g.iloc[n:n+1]))
card city
c1 t2 0.250000
c2 t1 0.333333
Name: city2, dtype: float64
我有一个系列
s
card city
c1 t1 0.500000
t2 0.250000
t3 0.250000
c2 t2 0.666667
t1 0.333333
Name: city, dtype: float64
我想获取每个 card
的顶部(或第 n 个)city
条目。我基本上想要 s.iloc[:,n]
类型的东西,即一种使用多索引对 pandas 系列进行位置索引的方法。我正在使用 pandas-1.3.2
.
您可以使用 groupby.head
:
s.groupby(level='card').head(1)
card city
c1 t1 0.500000
c2 t2 0.666667
Name: city2, dtype: float64
要获取每个组的 n-th
个条目,请先 group
然后在每个组中使用 iloc
。例如,要获取每张卡片的第二个条目:
n = 1
(s.groupby(level='card', group_keys=False)
.apply(lambda g: g.iloc[n:n+1]))
card city
c1 t2 0.250000
c2 t1 0.333333
Name: city2, dtype: float64