我正在尝试根据左侧限制yf
和右侧限制a0
选择熊猫数据系列b0
的一部分。
如果左极限为负,我想用零填充差值,这样所得的序列将具有所需的长度,如下所示:
if a0<0: ycr = pd.Series([0]*(abs(a0))).append(yf[:b0])
但这正在返回:
Series([], Name: 1, dtype: float64)
没有给出更多信息。
答案 0 :(得分:1)
我将源 Series 创建为:
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
(左列是索引,右列是实际值)。
然后,创建由3个零组成的输出 Series 然后我运行了 yf 的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 进行了另一项测试 带有默认索引( 0 中的连续整数):
yf = pd.Series(lst + 5)
这一次的结果是:
0 0
1 0
2 0
0 15
1 16
2 17
3 18
4 19
dtype: int64
(唯一的区别是在索引列中,正如我所期望的那样。)
因此,如您所见,您的代码按预期工作。 您的源数据可能有问题。