在Pandas中查找另一列大于X的列的最大值

时间:2016-03-24 23:08:54

标签: python python-2.7 pandas max where

我的数据设置如下,我试图找到分组数据后每个ID的金额大于0的最大年份。

df = df.groupby(['id','year']).sum().unstack().fillna(0).stack().sort(ascending=False)

print df

                     amount
id      year
1       2015             25
        2014              0
        2013              0
        2012              0
        2011              0
        2010              0
        2009              0
        2008              0
        2007            120
        2006            240
        2005            100
2       2015              0
        2014              0
        2013              0
        2012              0
        2011              0
        2010              0
        2009             25
        2008              0
        2007              0
        2006              0
        2005            100
3       2015              0
        2014              0
        2013              0
        2012              0
        2011              0
        2010              0
        2009              0
        2008              0
        2007              0
        2006              0
        2005              0
    ...                 ...

从数据中我想以某种方式,形状或形式表明以下是金额大于0的第一年:

id   year       amount
1    2015       25
2    2009       25
3    None/Nan   None/Nan

2 个答案:

答案 0 :(得分:1)

您没有提供可重现的DataFrame,但这样做有效:

subdir, dirs, files

答案 1 :(得分:0)

我认为你可以使用类似的东西:

np.where(amount > 0)

之后,您可以选择:

np.max()

我认为对于Pandas你有非常相似的命令