如何逐步减少pandas数据帧的一个值
发布时间:2020-12-20 12:35:17 所属栏目:Python 来源:网络整理
导读:假设我有一个如下所列的数据帧: [1] df name value a 116 b 116 c 116 d 225 e 225 f 225 g 225 现在我希望df成为 name value a 116 b 115 c 114 d 225 e 224 f 223 g 222 也就是说,只要原始df在连续行的列中具有相同(固定)值,它就应该逐渐减少1.因此,名称a
假设我有一个如下所列的数据帧:
[1] df name value a 116 b 116 c 116 d 225 e 225 f 225 g 225 现在我希望df成为 name value a 116 b 115 c 114 d 225 e 224 f 223 g 222 也就是说,只要原始df在连续行的列中具有相同(固定)值,它就应该逐渐减少1.因此,名称a,b,c的值列中的值从116到114.对于d,e,f,g从225到222. 好心劝告. 解决方法
将
GroupBy.cumcount 用于计数连续值并从列值中减去:
#consecutive rows to Series g g = df['value'].ne(df['value'].shift()).cumsum() df['value'] = df['value'] - df.groupby(g).cumcount() print (df) name value 0 a 116 1 b 115 2 c 114 3 d 225 4 e 224 5 f 223 6 g 222 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |