pandas - 如何使用 MultiIndex 在 DataFrame 的深层检索最小值索引
Posted
技术标签:
【中文标题】pandas - 如何使用 MultiIndex 在 DataFrame 的深层检索最小值索引【英文标题】:pandas - how to retrieve idices of minima at a deep level of DataFrame with MultiIndex 【发布时间】:2020-06-22 15:36:13 【问题描述】:这是我的带有 MultiIndex 的测试数据集 -
In [126]: sumdf
Out[126]:
sum
frame face lmark
0 NaN NaN 0.0
30 0.0 1.0 1113.0
2.0 1064.0
3.0 1212.0
45 0.0 1.0 1084.0
2.0 1133.0
3.0 1181.0
我可以用-检索整个DataSet的最小值的索引-
In [127]: sumdf.idxmin()
Out[127]:
sum (0, nan, nan)
dtype: object
但是如何确定lmark
级别的最小值的索引?
即。我想检索类似 -
(45, 0.0, 1.0) - minimum where lmark = 1.0
(30, 0.0, 2.0) - minimum where lmark = 2.0
(30, 0.0, 3.0) - minimum where lmark = 3.0
【问题讨论】:
【参考方案1】:IIUC,它是idxmin
和groupby
:
df.groupby(level='lmark')['sum'].idxmin()
输出:
lmark
1.0 (45, 0.0, 1.0)
2.0 (30, 0.0, 2.0)
3.0 (45, 0.0, 3.0)
Name: sum, dtype: object
【讨论】:
以上是关于pandas - 如何使用 MultiIndex 在 DataFrame 的深层检索最小值索引的主要内容,如果未能解决你的问题,请参考以下文章
使用 MultiIndex 时如何在 Pandas 中使用转换器
Pandas DataFrame - 如何检索 MultiIndex 级别的特定组合
如何更新 MultiIndex pandas DataFrame 的子集
使用 MultiIndex 时,如何将此 Pandas 列类型保留为日期时间?