我有一系列数字:
5138 22498 42955
我想为上面的每个数字添加 3 个数字(每个减少 1 个):
5135 5136 5137 5138 22495 22496 22497 22498 42952 42953 42954 42955
怎么做?谢谢。
使用列表理解与扁平化创建的新值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)