【问题标题】:Python Group by two columns and then get the earliest and latest datePython 按两列分组,然后获取最早和最晚日期
【发布时间】:2021-06-29 10:44:26
【问题描述】:

当我试图获取groupby之后的最早和最晚日期时,我发现max结果会在min之后附加:

ATR_table.groupby(['USAGEID', 'STAT']).agg({'DATADTTM':'min','DATADTTM':'max'})
USAGEID STAT DATADTTM
10140 0 2020-01-01
10140 1 2020-01-01
10141 0 2020-01-01
10141 1 2020-01-01
10140 0 2020-07-18
10140 1 2020-07-18
10141 0 2020-07-18
10141 1 2020-07-18

有没有办法通过使用 groupby 获得以下结果?

USAGEID STAT DATADTTM Min DATADTTM Max
10140 0 2020-01-01 2020-07-18
10140 1 2020-01-01 2020-07-18
10141 0 2020-01-01 2020-07-18
10141 1 2020-01-01 2020-07-18

【问题讨论】:

    标签: python group-by aggregation


    【解决方案1】:

    如果你没有其他列,你可以简单地传递一个简单的列表:

    ATR_table.groupby(['USAGEID', 'STAT']).agg(['min', 'max'])
    

    如果您希望能够在其他列上使用其他功能,您应该在字典中包含一个列表:

    ATR_table.groupby(['USAGEID', 'STAT']).agg({'DATADTTM':['min', 'max']})
    

    【讨论】:

      猜你喜欢
      • 2021-09-29
      • 2018-04-15
      • 2021-06-19
      • 2017-02-18
      • 1970-01-01
      • 2021-08-31
      • 2021-11-14
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多