loc vs iloc pandas code example

Example 1: loc and iloc in pandas

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

Example 2: 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 3: 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

Example 4: how to use loc and iloc in pandas

>>> mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},
...           {'a': 100, 'b': 200, 'c': 300, 'd': 400},
...           {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]
>>> df = pd.DataFrame(mydict)
>>> df
      a     b     c     d
0     1     2     3     4
1   100   200   300   400
2  1000  2000  3000  4000