简体   繁体   中英

Appending pandas series to the left of index zero

I'm trying to select portions of a pandas data series yf according to left limit a0 and right limit b0 .

If the left limit is negative, I want to pad the difference with zeros so the resulting series would have the desired length, like this:

if a0<0: ycr = pd.Series([0]*(abs(a0))).append(yf[:b0])

but this is returning:

Series([], Name: 1, dtype: float64)

and no more information is given.

I created the source Series as:

lst = np.arange(10,20)
yf = pd.Series(lst + 5, index = lst)

so that it contains:

10    15
11    16
12    17
13    18
14    19
15    20
16    21
17    22
18    23
19    24
dtype: int32

(the left column is the index, and the right - actual values).

Then, to create an output Series composed of 3 zeroes and then 5 initial elements of yf I ran:

a0 = -3; b0 = 5
ycr = pd.Series([0]*(abs(a0))).append(yf[:b0])

and got:

0      0
1      0
2      0
10    15
11    16
12    17
13    18
14    19
dtype: int64

Then I performed another test, on the source Series created with the default index (consecutive integers from 0 ):

yf = pd.Series(lst + 5)

This time the result is:

0     0
1     0
2     0
0    15
1    16
2    17
3    18
4    19
dtype: int64

(the only difference is in the index column, as I expected).

So, as you can see, your code works as expected. Probably there is something wrong with your source data.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM