python - Python为数据框中每组的前3个值选择数据
问题描述
从按 ID 和日期排序的给定数据框中:
ID Date Value
1 12/10/1998 0
1 04/21/2002 21030
1 08/16/2013 56792
1 09/18/2014 56792
1 09/14/2016 66354
2 06/16/2015 46645
2 12/08/2015 47641
2 12/11/2015 47641
2 04/13/2017 47641
3 07/29/2009 28616
3 03/31/2011 42127
3 03/17/2013 56000
我想获取前 3 个日期的值,按 ID 分组:
56792
56792
66354
47641
47641
47641
28616
42127
56000
我只需要价值观
解决方案
您可以sort_values
同时使用ID
和Date
,并使用GroupBy.tail
来获取前 3 个日期的值:
df.Date = pd.to_datetime(df.Date)
df.sort_values(['ID','Date']).groupby('ID').Value.tail(3).to_numpy()
# array([56792, 56792, 66354, 47641, 47641, 47641, 28616, 42127, 56000])
推荐阅读
- javascript - Bootstrap 4 表单验证和提交
- c++ - cmake + g++ 链接winsock2.h库失败
- javascript - AngularJS 使用 UI 路由器进行翻译
- opencv - 在 Spring Boot 微服务中使用带有 gradle 的 OpenCV:NoClassDefFoundError
- php - 如何在我的 Wordpress 网站上的 functions.php 中使用 add_shortcode 和 wpdb 解决此错误?
- java - 计算需要将数字添加到坐标以改变底值的次数
- reactjs - 使用 ant.desing V4.x 选择带有 redux-form 的组件
- java - 我可以在方法“findCurrentPlace()”中设置其他坐标吗?
- ios - 使用 SwiftUI 创建一个实际的表
- r - 只保留序列中的最后一个单词