python,pandas:从多索引返回最高值 让我们考虑一个定义为如下的熊猫数据文件: from decimal import Decimal from pandas import Timestamp dic={'volume': {('CSC', Timestamp('2016-08-05 00:00:00'), 'CSCF7'): Decimal('13'), ('CSC', Timestamp('2016-08-05 00:00:00'), 'CSCG7'): Decimal('6'), ('CSC', Timestamp('2016-08-05 00:00:00'), 'CSCH7'): Decimal('12'), ('DA', Timestamp('2016-08-05 00:00:00'), 'DCF7'): Decimal('47'), ('DA', Timestamp('2016-08-05 00:00:00'), 'DCG7'): Decimal('16'), ('DA', Timestamp('2016-08-05 00:00:00'), 'DCH7'): Decimal('27') }} df=pd.DataFrame(dic)

python,pandas:从多索引返回最高值 让我们考虑一个定义为如下的熊猫数据文件: from decimal import Decimal from pandas import Timestamp dic={'volume': {('CSC', Timestamp('2016-08-05 00:00:00'), 'CSCF7'): Decimal('13'), ('CSC', Timestamp('2016-08-05 00:00:00'), 'CSCG7'): Decimal('6'), ('CSC', Timestamp('2016-08-05 00:00:00'), 'CSCH7'): Decimal('12'), ('DA', Timestamp('2016-08-05 00:00:00'), 'DCF7'): Decimal('47'), ('DA', Timestamp('2016-08-05 00:00:00'), 'DCG7'): Decimal('16'), ('DA', Timestamp('2016-08-05 00:00:00'), 'DCH7'): Decimal('27') }} df=pd.DataFrame(dic),python,pandas,indexing,multi-index,Python,Pandas,Indexing,Multi Index,我想对其进行转换,使其返回第三个索引级别的最高值。例如,在当前示例中: highest CSC 2016-08-05 CSCF7 DA 2016-08-05 DCF7 有人知道怎么做吗?你可以在级别groupby并使用idxmax In [317]: df.groupby(level=0).idxmax() Out[317]: volume CSC (CSC

我想对其进行转换,使其返回第三个索引级别的最高值。例如,在当前示例中:

                    highest  
CSC    2016-08-05   CSCF7  
DA     2016-08-05   DCF7 

有人知道怎么做吗?

你可以在
级别
groupby
并使用
idxmax

In [317]: df.groupby(level=0).idxmax()
Out[317]:
                                volume
CSC  (CSC, 2016-08-05 00:00:00, CSCF7)
DA     (DA, 2016-08-05 00:00:00, DCF7)

In [318]: df.groupby(level=0).idxmax().volume.apply(pd.Series)
Out[318]:
       0          1      2
CSC  CSC 2016-08-05  CSCF7
DA    DA 2016-08-05   DCF7
或者

或者


非常有趣和工作thx。
.apply(pd.Series)
如何工作?这让我有点困惑!
In [338]: df.groupby(level=[0, 1]).volume.idxmax().apply(lambda x: x[-1])
Out[338]:
CSC  2016-08-05    CSCF7
DA   2016-08-05     DCF7
Name: volume, dtype: object
In [341]: df.groupby(level=[0, 1]).volume.idxmax().str[-1]
Out[341]:
CSC  2016-08-05    CSCF7
DA   2016-08-05     DCF7
Name: volume, dtype: object