如何将具有递减值的多行添加到一个系列中

Jas*_*son 2 python pandas

我有一系列数字:

5138
22498
42955

我想为上面的每个数字添加 3 个数字(每个减少 1 个):

5135
5136
5137
5138
22495
22496
22497
22498
42952
42953
42954
42955

怎么做?谢谢。

jez*_*ael 6

使用列表理解与扁平化创建的新值range

s = pd.Series([5138,22498,42955])

N = 3
a = pd.Series([y for x in s for y in range(x-N, x+1)])
print (a)
0      5135
1      5136
2      5137
3      5138
4     22495
5     22496
6     22497
7     22498
8     42952
9     42953
10    42954
11    42955
dtype: int64
Run Code Online (Sandbox Code Playgroud)

或者可以创建范围并按以下方式展平Series.explode,最后Series.reset_index用于默认索引:

N = 3
a = s.apply(lambda x: range(x-N, x+1)).explode().reset_index(drop=True)
Run Code Online (Sandbox Code Playgroud)