pandas - pandas groupby head() & tail() 没有获取正确的值
问题描述
我有一个如下的数据框
id s e sa ea
0 AAA 2015-04-22 2015-11-11 2015-05-07 2018-09-28
1 AAA 2015-05-07 2018-09-28 2015-05-07 2018-09-28
2 BBB 1972-11-04 2019-08-01 2019-06-15 2019-12-31
3 BBB 2019-06-15 2019-12-31 2019-06-15 2019-12-31
4 CCC 2000-11-04 2005-11-04 2000-11-04 2019-01-01
5 CCC 2006-11-04 2019-01-01 2000-11-04 2019-01-01
当我groupby
& 选择head(1)
&tail(1)
时,我得到错误的值
df1.groupby('id').head(1)
给我
id s e sa ea
0 AAA 2015-05-07 2015-11-11 2015-05-07 2018-09-28
2 BBB 2019-06-15 2019-08-01 2019-06-15 2019-12-31
4 CCC 2000-11-04 2005-11-04 2000-11-04 2019-01-01
并df1.groupby('id').tail(1)
给我
id s e sa ea
1 AAA 2015-05-07 2018-09-28 2015-05-07 2018-09-28
3 BBB 2019-06-15 2019-12-31 2019-06-15 2019-12-31
5 CCC 2000-11-04 2019-01-01 2000-11-04 2019-01-01
知道为什么会这样吗?甚至索引号都是正确的。只有一列的值似乎是错误的!!!
解决方案
如果我理解正确,您应该使用first()
andlast()
而不是head()
and tail()
。
>>> df1.groupby('id').first()
s e sa ea
id
AAA 2015-04-22 2015-11-11 2015-05-07 2018-09-28
BBB 1972-11-04 2019-08-01 2019-06-15 2019-12-31
CCC 2000-11-04 2005-11-04 2000-11-04 2019-01-01
>>> df1.groupby('id').last()
s e sa ea
id
AAA 2015-05-07 2018-09-28 2015-05-07 2018-09-28
BBB 2019-06-15 2019-12-31 2019-06-15 2019-12-31
CCC 2006-11-04 2019-01-01 2000-11-04 2019-01-01
推荐阅读
- c# - 非控制器类无法访问 DbContext
- oauth - 如何在不刷新 OAuth 2.0 用户令牌的情况下查询 Google Sheets API?
- android - 完成 Querysnapshot 任务后如何启动新的 Intent?
- django - 如何在 django 模型中调整图像文件的大小
- matlab - 每 100m 等值线图标签
- r - 为什么在 Power BI 中运行我的 R 代码时收到这些错误消息?
- javascript - 将内部包含数组的对象数组更改为一个对象
- spring-boot - 我收到 SSL 异常 - “java.security.cert.CertificateException:找不到与 IP 地址 XXXX 匹配的主题替代名称”
- java - 使用泛型类型使 Field.get 类型安全
- c# - 在 WPF 中单击上下文菜单时如何获取画布中的鼠标位置?