首页 > 解决方案 > 需要使用python创建增量序列号

问题描述

我需要为 python 中给定的数据框值创建一个增量系列。非常感谢任何帮助

假设我有数据框列

df['quadrant']
Out[6]: 
0        4
1        4
2        4
3        3
4        3
5        3
6        2
7        2
8        2
9        1
10       1
11       1

我想创建一个新列

index   quadrant  new value
0        4         1
1        4         5
2        4         9
3        3         2
4        3         6
5        3         10
6        2         3
7        2         7
8        2         11
9        1         4
10       1         8
11       1         12

标签: python-3.xdataframe

解决方案


使用Numpy,您可以将数组创建为:

import numpy as np

def value(q, k=1):

    diff_quadrant = np.diff(q)
    j = 0
    ramp = []
    for i in np.where(diff_quadrant != 0)[0]:
        ramp.extend(list(range(i-j+1)))
        j = i+1
    ramp.extend(list(range(len(quadrant)-j)))
    ramp = np.array(ramp) * k   #  sawtooth-shaped array
    a = np.ones([len(quadrant)], dtype = np.int)*5

    return a - q + ramp

quadrant = np.array([3, 3, 3, 3, 4, 4, 4, 2, 2, 1, 1, 1])

b = value(quadrant, 4)
#  [ 2  6 10 14  1  5  9  3  7  4  8 12]


推荐阅读