loc and iloc in python code example

Example 1: select rows from dataframe pandas

from pandas import DataFrame

boxes = {'Color': ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
         'Shape': ['Rectangle','Rectangle','Square','Rectangle','Square','Square','Square','Rectangle'],
         'Price': [10,15,5,5,10,15,15,5]
        }

df = DataFrame(boxes, columns= ['Color','Shape','Price'])

select_color = df.loc[df['Color'] == 'Green']
print (select_color)

Example 2: loc and iloc in pandas

iloc - default indexes (system generated)
loc - table indexes or we manually given indexes

Example 3: pandas loc iloc

# Selecting Datafrmae Information:
# iloc

# selecting a single row:
df.iloc[3]

# selecting a range of rows:
df.iloc[0:3]

# selecting all rows, with columns within an index range:
# all rows, 1st- 3rd columns, sliced at second index:
df.iloc[:, 0:3]

# selecting a range of rows and a range of columns:
# 1st to 3rd rows, 5th & 6th columns:
df.iloc[0:3, 4:6]

# by multiple noconsecutive rows and columns:
# selecting rows 1, 4, 6 with columns 2, 3, 5:
df.iloc[[0, 3, 5], [1, 2, 4]]


# a) .loc label-based indexing- selecting columns based on index:
# all rows:
df.loc[:, 'column_name']

# or:
df['column_name']

# selected rows:
df.loc[0:5, 'column_name']

# b) boolean indexing using .loc:
df.loc[df['column_name'] < 5]

#boolean indexing fro one column:
df.loc[df['column_condition'] < 12, ['column_desired']]

Example 4: how to use loc and iloc in pandas

>>> df.iloc[0, 1]
2

Example 5: iloc python

>>> df.iloc[[0, 1]]
     a    b    c    d
0    1    2    3    4
1  100  200  300  400

Example 6: loc and iloc in pandas

iloc slicing gives all the data upto the position that is passed as argument
loc gives all the data upto the label that is passed as argument
n = pd.Series([1,2,3,4],index = [0,1,2,3])
print("With iloc we got")
print(n.iloc[:2])
print("With loc we got")
print(n.loc[:2])

<Output>
With iloc we got
0    1
1    2
dtype: int64
With loc we got
0    1
1    2
2    3
dtype: int64

Tags:

Sql Example