使用python-pandas groupby-aggregate函数获取值

问题描述 投票:0回答:1

所以我有一个看起来像这样的数据框:

    Date       Forward_Date    A    B    C    D   Amount
    2010-01-01  2010-02-01     a    a    a    a     20
    2010-01-01  2010-03-01     b    b    b    b     10
    2010-01-01  2010-04-01     c    c    c    c      5
    2010-01-02  2010-02-01     d    d    d    d     15
    2010-01-02  2010-03-01     e    f    e    e     30
    2010-01-02  2010-04-01     f    f    f    f     70 

我想得到的是这样的:

    Date       Forward_Date    A    B    C    D   Amount
    2010-01-01  2010-02-01     a    a    a    a     20
    2010-01-02  2010-04-01     f    f    f    f     70 

所以我想从日期列中选择数量最大的那些唯一条目,然后用相应的数据填充其他单元格。

我尝试过df.groupby(df['Date']).agg({'Amount':'max'}).reset_index()可以让我得到这个:

    Date          Amount
    2010-01-01      20
    2010-01-02      70 

但是我无法使用这两个列值的交集来填充其他列。任何帮助将不胜感激!

python pandas pandas-groupby
1个回答
0
投票
df = df.set_index("Date")

df.loc[lambda x: x.Amount.eq(df.groupby("Date").Amount.max())]
© www.soinside.com 2019 - 2024. All rights reserved.