查找熊猫数据框索引的最大值

时间:2020-04-18 14:11:07

标签: python pandas multi-index

我有一个熊猫MultiIndexed熊猫数据框。我想找到(数字,整数)索引之一的最大值。

也就是说,索引的范围是1到5844。我希望能够找到标量值5844。

我意识到我可以设置标量变量,因为我知道索引采用的值,但是我想在不知道最大值的情况下能够找到最大值。

3 个答案:

答案 0 :(得分:0)

如果您知道索引从1到5844不丢失,那么Ctrl + Shift + D有用。

答案 1 :(得分:0)

您可以将多重索引转换为框架,然后获取数据框架列的最大值:

scalar = df.index.to_frame[i].max()

但是最简单的方法可能是获取适当水平的最大值:

scalar = df.index.levels[i].max()

答案 2 :(得分:0)

可能的解决方案是在索引上使用.max()方法。在这种情况下,它将返回MultiIndex的每个级别中的值,可能不是您想要的值。还要注意,.max()将按字母顺序返回值,这意味着对于层次结构的每个级别,它将找到该级别中按字母顺序表示的最高值,然后在该第一组的下一级别中查找下一个最高值。

>>> tuples = [('bar', 1),
              ('bar', 10),
              ('baz', 11),
              ('baz', 14),
              ('foo', 15),
              ('foo', 16),
              ('qux', 17),
              ('qux', 5844)]
>>> index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])
>>> index.max()

('qux', 5844)

在这种情况下,qux在文学上是最高的,在MultiIndex的下一层(175844)中,5844是{{ 1}}分组。

如果需要调整方法,则可以通过以下方式选择MultiIndex的特定级别。在这种情况下,由于整数处于由索引qux标识的级别中,因此我们可以使用以下方法:

1

如果您的整数处于不同级别,则只需更改级别括号中的索引即可。