首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在条件下计算列中值的差值

在条件下计算列中值的差值
EN

Stack Overflow用户
提问于 2022-09-11 13:14:54
回答 1查看 19关注 0票数 0

我有一个DF,列有“区域”、“国家”、“年份”、“年度等级”。

我需要按地区和国家分组,并为每个国家计算2016-2019年“Yearly_rank”的变化。

代码语言:javascript
复制
df = pd.DataFrame([{'Region': 'west europe', 'Country': 'Finland', 'Year': 2019, 'Yearly_rank': 1}, {'Region': 'west europe', 'Country': 'Denmark', 'Year': 2019, 'Yearly_rank': 2}, {'Region': 'west europe', 'Country': 'Norway', 'Year': 2019, 'Yearly_rank': 3}, {'Region': 'west europe', 'Country': 'Iceland', 'Year': 2019, 'Yearly_rank': 4}, {'Region': 'west europe',

“国家”:“荷兰”、“年度”:2019年、“年度排名”:5}、{“区域”:“西欧”、“国家”:“瑞士”、“年”:2019年、“年度级别”:6}、{“区域”:“西欧”、“国家”、“瑞典”、“年份”:2019、“年度等级”:7}、{“区域”:“澳大利亚和新西兰”、“国家”:“新西兰”,“年份”:2019年,“年度等级”:8},{“区域”:“北美”,“国家”:“加拿大”,“年份”:2019年,“年度等级”:9},{“区域”:“西欧”,“国家”:“奥地利”,“年份”:2019年,“年度排名”:10}]

EN

回答 1

Stack Overflow用户

发布于 2022-09-11 13:20:47

试试这个:

代码语言:javascript
复制
cond = df["Year"].isin([2016, 2019])
change = df[cond].sort_values("Year").groupby(["Region", "Country"])["Yearly_rank"].diff()
df.assign(change=change).sort_values("change").groupby("Region").head(1)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73679576

复制
相关文章

相似问题

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