In [1]:
# učitavanje biblioteka za rad sa Serije
from pandas import Series 
import numpy as np

# Serije možemo dobiti iz:
# liste
s1 = Series([1,2,'abc',4,5])

# numeričkog niza
array = np.array([1,2,3,4,5,9])
s2 = Series(array)

# rečinka
d = {1:'a','drugi podatak':0.2,3:'tri'}
s3 = Series(d)

s4 = Series([[1,'lisa',2],0.5,5], index=[0.1,'string',6])
In [2]:
print((s1))
print('tip podatka s1 je: ', type(s1))
print('tip podatka 1. i 3. elementa iz s1 : ', type(s1[0]), ',',type(s1[2]))
0      1
1      2
2    abc
3      4
4      5
dtype: object
tip podatka s1 je:  <class 'pandas.core.series.Series'>
tip podatka 1. i 3. elementa iz s1 :  <class 'int'> , <class 'str'>
In [3]:
print((s2))
print('tip podatka s2 je: ', type(s2))
print('tip podatka elementa iz s2 : ', type(s1[0]))
0    1
1    2
2    3
3    4
4    5
5    9
dtype: int32
tip podatka s2 je:  <class 'pandas.core.series.Series'>
tip podatka elementa iz s2 :  <class 'int'>
In [4]:
print((s3))
print('tip podatka s2 je: ', type(s3))
print('tip podatka elementa s3 sa indeksom 1 : ',s3[1],'je', type(s3[1]))
print('tip podatka elementa s3 sa indeksom 2 : ', s3[2], 'je', type(s3[2]))
1                  a
drugi podatak    0.2
3                tri
dtype: object
tip podatka s2 je:  <class 'pandas.core.series.Series'>
tip podatka elementa s3 sa indeksom 1 :  a je <class 'str'>
tip podatka elementa s3 sa indeksom 2 :  tri je <class 'str'>
In [5]:
print(s4)
0.1       [1, lisa, 2]
string             0.5
6                    5
dtype: object
In [6]:
# Kako dobiti vrednosti koje se nalaze u podatku tipa Series?
s3.values
Out[6]:
array(['a', 0.2, 'tri'], dtype=object)
In [7]:
# Vrednost prvog indeksa
s3.values[0]
Out[7]:
'a'
In [8]:
# Dodela nove vrednosti prvom indeksu
s3.values[0]='aaa'
s3.values[0]
Out[8]:
'aaa'
In [9]:
# Kako dobiti indekse koji se nalaze u podatku tipa Series?
s1.index
Out[9]:
RangeIndex(start=0, stop=5, step=1)
In [10]:
s3.index
Out[10]:
Index([1, 'drugi podatak', 3], dtype='object')
In [11]:
# Kako pristupiti elementima podatka tipa Series ?
# prvo ćemo odstampati s1 i s3 radi lakseg pracenja narednog koda
print('s1: ')
print(s1)
print() # štampamo prazan red radi lakšeg praćenja koda
print('s3: ')
print(s3)
# pristupanje elementima podatka tipa Series može se učiniti na dva načina
# korišćenjem [] kao kod NumPy nizova
print()
print('Prvi element s3 - element sa indeksom 0 je: ',s3[0])
print()
# korišćenjem iloc[index elementa koji želimo, kada su indeksi brojevi]
print('Drugi element s3 je : ',s3.iloc[1])
#print(s3.iloc['drugi podatak':]) #- ova naredba daće grešku pošto je iloc predviđena za brojno indeksiranje

# korišćenjem loc[ime indeksa elementa koji želimo]
print()
print('Element s3 čiji je indeks "drugi podatak" je: ',s3.loc['drugi podatak'])
print('Prvi element u s1: ', s1.loc[0]) # ova naredba se izvršava bez greške, 
# print(s3.loc[0]) # ova naredba je pogrešna jer nula nije naziv nijednog indeksa u s3
s1: 
0      1
1      2
2    abc
3      4
4      5
dtype: object

s3: 
1                aaa
drugi podatak    0.2
3                tri
dtype: object

Prvi element s3 - element sa indeksom 0 je:  aaa

Drugi element s3 je :  0.2

Element s3 ciji je indeks "drugi podatak" je:  0.2
Prvi element u s1:  1
In [12]:
# Kako iseći deo podatka tipa Series?
# tzv. slicing Series
# vrši se na sledeći način: ime_Series[indeks elementa koji se prvi uzima : indeks elementa do kojeg se vrši isecanje]
# ukoliko je izostavljen indeks pre: podrazumeva se da se kreće od prvog elementa u nizu, a ako je izostavljen indeks posle : 
# podrazumeva se da se uzimaju elementi do kraja Series
print(s1[0:2])
print()
print(s1.iloc[0:2])
print()
print(s3['drugi podatak':])
print()
print(s3.loc['drugi podatak':])
print()
# isecanje dela Series se može primenjivati sa sa iloc i loc 
0    1
1    2
dtype: object

0    1
1    2
dtype: object

drugi podatak    0.2
3                tri
dtype: object

drugi podatak    0.2
3                tri
dtype: object