【问题标题】:Finding the max value for a hierarchy level over another level在另一个级别上查找层次结构级别的最大值
【发布时间】:2013-10-28 18:48:12
【问题描述】:

假设我有一个这样的 DataFrame:

l1  1      2   
l2  1  13  99  89
0   1  2   2   1

对于l1 的每个值,我想在该l1 值下的l2 值中找到相应的最大值。有没有使用 groupby 的简单方法?

所以在上面的例子中它将是1->22->99

我目前的解决方案是:

grouped = swapped.groupby(level="l1",axis=1)
maxes = []
for n,g in grouped:
   maxes.append((n, max([x[1] for x in g.columns]))) # we take max over level l2 

【问题讨论】:

    标签: pandas


    【解决方案1】:
    In [33]: df = DataFrame([[1,2,2,1]],
             columns=MultiIndex.from_tuples([(1,1),(1,13),(2,99),(2,89)],names=['l1','l2']))
    
    In [34]: df
    Out[34]: 
    l1   1       2    
    l2  1   13  99  89
    0    1   2   2   1
    
    In [35]: df.T.reset_index().groupby('l1').max()
    Out[35]: 
        l2  0
    l1       
    1   13  2
    2   99  2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 2021-09-15
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 2013-07-04
      相关资源
      最近更新 更多