如何对pandas的值进行分组并从每组中选择最新的值(按日期)?
例如,给定一个按日期排序的数组:
id product date
0 220 6647 2014-09-01
1 220 6647 2014-09-03
2 220 6647 2014-10-16
3 826 3380 2014-11-11
4 826 3380 2014-12-09
5 826 3380 2015-05-19
6 901 4555 2014-09-01
7 901 4555 2014-10-05
8 901 4555 2014-11-01
字符串
按id或产品分组,并选择最新的产品:
id product date
2 220 6647 2014-10-16
5 826 3380 2015-05-19
8 901 4555 2014-11-01
型
6条答案
按热度按时间polhcujo1#
您也可以使用
tail
和groupby来获取组的最后n个值:字符串
wyyhbhjk2#
在
groupby
中使用idxmax
,用loc
切片df
字符串
to94eoyn3#
我遇到了类似的问题,最终使用了
drop_duplicates
而不是groupby
。与上面建议的其他方法相比,它在大型数据集上的运行速度明显更快。
字符串
ej83mcc04#
给定一个按日期排序的数组,您可以通过多种方式获得您所要求的内容:
就像这样:
字符串
就像这样:
型
或者像这样:
型
如果不希望
id
和product
显示为索引,请使用groupby(['id', 'product'], as_index=False)
。或者用途:型
2mbi3lxu5#
要使用
.tail()
作为聚合方法并保持分组不变,请执行以下操作:字符串
hpcdzsge6#
字符串