将 pandas 系列附加到索引零的左侧
Appending pandas series to the left of index zero
我正在尝试 select 根据左限制 a0
和右限制 b0
的 pandas 数据系列 yf
的部分。
如果左边的限制是负数,我想用零填充差值,这样得到的系列就会有所需的长度,如下所示:
if a0<0: ycr = pd.Series([0]*(abs(a0))).append(yf[:b0])
但这是返回:
Series([], Name: 1, dtype: float64)
并且没有提供更多信息。
我将源 系列 创建为:
lst = np.arange(10,20)
yf = pd.Series(lst + 5, index = lst)
因此它包含:
10 15
11 16
12 17
13 18
14 19
15 20
16 21
17 22
18 23
19 24
dtype: int32
(左列为索引,右列为实际值)。
然后,创建一个输出 Series 由 3 个零和
然后 yf I 运行:
的 5 个初始元素
a0 = -3; b0 = 5
ycr = pd.Series([0]*(abs(a0))).append(yf[:b0])
并得到:
0 0
1 0
2 0
10 15
11 16
12 17
13 18
14 19
dtype: int64
然后我执行了另一个测试,在源 Series created
使用默认索引(0 中的连续整数):
yf = pd.Series(lst + 5)
这次的结果是:
0 0
1 0
2 0
0 15
1 16
2 17
3 18
4 19
dtype: int64
(唯一的区别在于索引列,如我所料)。
因此,如您所见,您的代码按预期工作。
可能是你的源数据有问题。
我正在尝试 select 根据左限制 a0
和右限制 b0
的 pandas 数据系列 yf
的部分。
如果左边的限制是负数,我想用零填充差值,这样得到的系列就会有所需的长度,如下所示:
if a0<0: ycr = pd.Series([0]*(abs(a0))).append(yf[:b0])
但这是返回:
Series([], Name: 1, dtype: float64)
并且没有提供更多信息。
我将源 系列 创建为:
lst = np.arange(10,20)
yf = pd.Series(lst + 5, index = lst)
因此它包含:
10 15
11 16
12 17
13 18
14 19
15 20
16 21
17 22
18 23
19 24
dtype: int32
(左列为索引,右列为实际值)。
然后,创建一个输出 Series 由 3 个零和 然后 yf I 运行:
的 5 个初始元素a0 = -3; b0 = 5
ycr = pd.Series([0]*(abs(a0))).append(yf[:b0])
并得到:
0 0
1 0
2 0
10 15
11 16
12 17
13 18
14 19
dtype: int64
然后我执行了另一个测试,在源 Series created 使用默认索引(0 中的连续整数):
yf = pd.Series(lst + 5)
这次的结果是:
0 0
1 0
2 0
0 15
1 16
2 17
3 18
4 19
dtype: int64
(唯一的区别在于索引列,如我所料)。
因此,如您所见,您的代码按预期工作。 可能是你的源数据有问题。