这篇文章主要介绍了Python如何给某个字段切片并实现累计求和的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python如何给某个字段切片并实现累计求和文章都会有所收获,下面我们一起来看看吧。
问题:按第一列分组,分别把上面的累计加到下面的分组上,怎么实现?
思路:
1.先pivot透视,scale扩展到多列
2.cumsum()累加
3.melt逆透视,还原原本形状
加载数据源:
import pandas as pd df = pd.read_table(r"D:\Jupyter\data\df_test.txt") df
数据清洗过程:
years = ['1980以前', '1980-1989年', '1990-1999年', '2000-2009年', '2010-2020年'] result = ( df.pivot(index="period", columns="scale", values="count") .loc[years] .cumsum() .reset_index() .melt(id_vars='period', value_name='count') ) result.dropna(inplace=True) result["count"] = result["count"].astype("int16") result.period = result.period.astype("category") result.period = result.period.cat.reorder_categories(years) result.sort_values(by=["period", "scale"], inplace=True) result
关于“Python如何给某个字段切片并实现累计求和”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python如何给某个字段切片并实现累计求和”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。