In [ ]:
'''
LESSION 4
- Adding/deleting columns 
- Index operations
'''

In [1]:
# Import libraries
import pandas as pd
import sys
print('Python version ' + sys.version)
print('Pandas version: ' + pd.__version__)


Python version 2.7.13 |Anaconda 4.3.0 (64-bit)| (default, Dec 19 2016, 13:29:36) [MSC v.1500 64 bit (AMD64)]
Pandas version: 0.19.2

In [2]:
# Our small data set
d = [0,1,2,3,4,5,6,7,8,9]

# Create dataframe
df = pd.DataFrame(d)
df


Out[2]:
0
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9

In [3]:
# Lets change the name of the column
df.columns = ['Rev']
df


Out[3]:
Rev
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9

In [4]:
# Lets add a column
df['NewCol'] = 5
df


Out[4]:
Rev NewCol
0 0 5
1 1 5
2 2 5
3 3 5
4 4 5
5 5 5
6 6 5
7 7 5
8 8 5
9 9 5

In [5]:
# Lets modify our new column
df['NewCol'] = df['NewCol'] + 1
df


Out[5]:
Rev NewCol
0 0 6
1 1 6
2 2 6
3 3 6
4 4 6
5 5 6
6 6 6
7 7 6
8 8 6
9 9 6

In [6]:
# We can delete columns
del df['NewCol']
df


Out[6]:
Rev
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9

In [7]:
# Lets add a couple of columns
df['test'] = 3
df['col'] = df['Rev']
df


Out[7]:
Rev test col
0 0 3 0
1 1 3 1
2 2 3 2
3 3 3 3
4 4 3 4
5 5 3 5
6 6 3 6
7 7 3 7
8 8 3 8
9 9 3 9

In [8]:
# If we wanted, we could change the name of the index
i = ['a','b','c','d','e','f','g','h','i','j']
df.index = i
df


Out[8]:
Rev test col
a 0 3 0
b 1 3 1
c 2 3 2
d 3 3 3
e 4 3 4
f 5 3 5
g 6 3 6
h 7 3 7
i 8 3 8
j 9 3 9

In [9]:
df.loc['a']


Out[9]:
Rev     0
test    3
col     0
Name: a, dtype: int64

In [10]:
# df.loc[inclusive:inclusive]
df.loc['a':'d']


Out[10]:
Rev test col
a 0 3 0
b 1 3 1
c 2 3 2
d 3 3 3

In [11]:
# df.iloc[inclusive:exclusive]
# Note: .iloc is strictly integer position based. It is available from [version 0.11.0] (http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#v0-11-0-april-22-2013) 
df.iloc[0:3]


Out[11]:
Rev test col
a 0 3 0
b 1 3 1
c 2 3 2

In [12]:
df['Rev']


Out[12]:
a    0
b    1
c    2
d    3
e    4
f    5
g    6
h    7
i    8
j    9
Name: Rev, dtype: int64

In [13]:
df[['Rev', 'test']]


Out[13]:
Rev test
a 0 3
b 1 3
c 2 3
d 3 3
e 4 3
f 5 3
g 6 3
h 7 3
i 8 3
j 9 3

In [14]:
# df.ix[rows,columns]
df.ix[0:3,'Rev']


Out[14]:
a    0
b    1
c    2
Name: Rev, dtype: int64

In [15]:
df.ix[5:,'col']


Out[15]:
f    5
g    6
h    7
i    8
j    9
Name: col, dtype: int64

In [16]:
df.ix[:3,['col', 'test']]


Out[16]:
col test
a 0 3
b 1 3
c 2 3

In [17]:
# Select top N number of records (default = 5)
df.head()


Out[17]:
Rev test col
a 0 3 0
b 1 3 1
c 2 3 2
d 3 3 3
e 4 3 4

In [18]:
# Select bottom N number of records (default = 5)
df.tail()


Out[18]:
Rev test col
f 5 3 5
g 6 3 6
h 7 3 7
i 8 3 8
j 9 3 9

In [ ]:


In [ ]: