使用Python Pandas为数据列添加连续序号,且相同数据共享同一序号。
许多数据分析任务都需要根据某列数据生成序号,并要求相同数值拥有相同序号,不同数值序号递增。本文将演示如何利用Python的Pandas库高效实现此功能。
假设数据列为[11, 21, 24, 24, 24, 25, 25],目标序号列应为[1, 2, 3, 3, 3, 4, 4]。
解决方案:
立即学习“Python免费学习笔记(深入)”;
我们可以结合Pandas和NumPy库高效解决这个问题。首先,创建一个包含数据列和序号列(初始值为0)的Pandas DataFrame。然后,使用df[‘data’].diff() != 0计算数据列中相邻元素是否不同,结果为布尔值序列。最后,使用NumPy的cumsum()函数对布尔序列进行累加,即可得到目标序号列。cumsum()函数将True值累加为1,实现序号递增。
以下代码展示具体实现:
import numpy as npimport pandas as pddata = [11, 21, 24, 24, 24, 24, 25, 25, 26, 26, 26, 26, 23, 26, 26, 26, 26, 20, 26, 26, 26, 26]df = pd.DataFrame({'data': data, 'nums': 0})df['nums'] = np.cumsum(df['data'].diff() != 0) +1 # 加1使序号从1开始print(df)
登录后复制
运行结果:
data nums0 11 11 21 22 24 33 24 34 24 35 24 36 25 47 25 48 26 59 26 510 26 511 26 512 23 613 26 714 26 715 26 716 26 717 20 818 26 919 26 920 26 921 26 9
登录后复制
此方法高效地为数据列添加连续序号,并确保相同数据共享同一序号。 我们还对结果加1,确保序号从1开始,而不是0。
以上就是Python Pandas 如何为数据列添加连续序号且相同数据共享序号?的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2526675.html