Python 按两列分组,然后获取最早和最晚日期
Posted
技术标签:
【中文标题】Python 按两列分组,然后获取最早和最晚日期【英文标题】:Python Group by two columns and then get the earliest and latest date 【发布时间】: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 |
【问题讨论】:
【参考方案1】:如果你没有其他列,你可以简单地传递一个简单的列表:
ATR_table.groupby(['USAGEID', 'STAT']).agg(['min', 'max'])
如果您希望能够在其他列上使用其他功能,您应该在字典中包含一个列表:
ATR_table.groupby(['USAGEID', 'STAT']).agg('DATADTTM':['min', 'max'])
【讨论】:
以上是关于Python 按两列分组,然后获取最早和最晚日期的主要内容,如果未能解决你的问题,请参考以下文章