首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何选择每一只大熊猫的最后5行记录

如何选择每一只大熊猫的最后5行记录
EN

Stack Overflow用户
提问于 2019-06-27 12:34:24
回答 2查看 872关注 0票数 5

使用python 3尝试对列'Name‘中的每个uniqe行从'Number’获取最后5个记录。如何在python中做到这一点呢?我的df看起来如下:

代码语言:javascript
复制
Name    Number
a   5
a   6
b   7
b   8
a   9
a   10
b   11
b   12
a   9
b   8

我在SQL中看到了相同的实例(比如这个Get sum of last 5 rows for each unique id ),但是这很费时,我想学习如何在python中完成它。

我的预期输出df如下所示:

代码语言:javascript
复制
Name    1   2   3   4   5
a   5   6   9   10  9
b   7   8   11  12  8
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-27 12:49:14

我想你需要这样的东西:

代码语言:javascript
复制
df_out = df.groupby('Name').tail(5)
df_out.set_index(['Name', df_out.groupby('Name').cumcount() +1])['Number'].unstack()

输出:

代码语言:javascript
复制
      1  2   3   4  5
Name                 
a     5  6   9  10  9
b     7  8  11  12  8
票数 2
EN

Stack Overflow用户

发布于 2019-06-27 12:43:49

看起来你需要pivotgroupby.cumcount()之后

代码语言:javascript
复制
df1=df.groupby('Name').tail(5)
final=(df1.assign(k=df1.groupby('Name').cumcount()+1)
          .pivot(index='Name', columns='k', values='Number')
          .reset_index().rename_axis(None, axis=1))
print(final)
代码语言:javascript
复制
  Name  1  2   3   4  5
0    a  5  6   9  10  9
1    b  7  8  11  12  8
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56791128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档