In this tutorial we will discuss about loc[], iloc[], at[] and iat[]
functions and their differences.
These functions are used to select one/more columns from a dataframe. They are available in the pandas dataframe
Lets create sample dataframe
Create pandas DataFrame with example data
DataFrame is a data structure used to store the data in two dimensional format. It is similar to table that stores the data in rows and columns. Rows represents the records/ tuples and columns refers to the attributes.
We can create the DataFrame by using**pandas.DataFrame()**method.
Syntax:
pandas.DataFrame(input_data,columns,index)Parameters:
It will take mainly three parameters
input_datais represents a list of datacolumnsrepresent the columns names for the dataindexrepresent the row numbers/values
We can also create a DataFrame using dictionary by skipping columns and indices.
Example:Python Program to create a dataframe for market data from a dictionary of food items by specifying the column names.
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display the dataframe
print(dataframe)Output:
id name cost quantity
item-1 foo-23 ground-nut oil 567.00 1
item-2 foo-13 almonds 562.56 2
item-3 foo-02 flour 67.00 3
item-4 foo-31 cereals 76.09 2
You can learn more at Pandas dataframe explained with simple examples
Understanding the usage of loc[]
loc[] stands for location is used to select the data .
We need to specify the column names to be selected
insideloc[]function.
Syntax:
dataframe.loc[:,['column',........,'column']]where,
- dataframe is the input dataframe
- column refers to the column names
:operator is used to select all rows from the column
Example 1:In this example, we are going to access the name, cost and quantity columns
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display name ,cost and quantity columns from the dataframe
print(dataframe.loc[:,['name','cost','quantity']])Output:
name cost quantity
item-1 ground-nut oil 567.00 1
item-2 almonds 562.56 2
item-3 flour 67.00 3
item-4 cereals 76.09 2
**Example 2:**Python program to select name and cost columns
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display name ,cost columns from the dataframe
print(dataframe.loc[:,['name','cost']])Output:
name cost
item-1 ground-nut oil 567.00
item-2 almonds 562.56
item-3 flour 67.00
item-4 cereals 76.09
Understanding the usage of iloc[]
iloc[] stands for location is used to select the data with index .
We need to specify the column indices to be selected inside
iloc[]function.
Syntax:
dataframe.loc[:,['start_column_index':'end_column_index']]where,
- dataframe is the input dataframe
start_column_indexrefers to the starting columnend_column_indexrefers to the ending column:operator is used to select all rows from the column
**Example 1:**Python program to select name, cost and quantity columns.
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display name ,cost and quantity columns from the dataframe
print(dataframe.iloc[:,1:4])Output:
name cost quantity
item-1 ground-nut oil 567.00 1
item-2 almonds 562.56 2
item-3 flour 67.00 3
item-4 cereals 76.09 2
**Example 2:**Python program to select name and cost columns
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display name ,cost columns from the dataframe
print(dataframe.iloc[:,1:3])Output:
name cost
item-1 ground-nut oil 567.00
item-2 almonds 562.56
item-3 flour 67.00
item-4 cereals 76.09
Understanding the usage of at[]
at[] is used to return the data in particular cell from the dataframe.
Syntax:
at[index_label,column_name]where,
- dataframe is the input dataframe
index_labelis the index label or index positioncolumn_nameis the column name
Example 1: Python program to get data using at[] by selecting
1 st , 2 nd and 3 rd element from name column
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display 1 st , 2 nd and 3 rd element from name column
print(dataframe.at['item-1','name'])
print(dataframe.at['item-2','name'])
print(dataframe.at['item-3','name'])Output:
ground-nut oil
almonds
flour
**Example 2:**Python program to get data using at[] by selecting 1st
, 2nd and 3rd element from id column
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display 1 st , 2 nd and 3 rd element from id column
print(dataframe.at['item-1','id'])
print(dataframe.at['item-2','id'])
print(dataframe.at['item-3','id'])Output:
foo-23
foo-13
foo-02
Understanding the usage of iat[]
iat[] is used to return the data in particular cell from the dataframe
based on row and column index.
Syntax:
at[row_index,column_index]where,
- dataframe is the input dataframe
row_indexis the index position of a rowcolumn_indexis the index position of a column
Example 1: Python program to get data using iat[] by selecting
1 st , 2 nd and 3 rd element from name column
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display 1 st , 2 nd and 3 rd element from name column
print(dataframe.iat[0,1])
print(dataframe.iat[1,1])
print(dataframe.iat[2,1])Output:
ground-nut oil
almonds
flour
**Example 2:**Python program to get data using iat[] by selecting 1st
, 2nd and 3rd element from id column
# import the module
import pandas
# consider the food data
food_input={'id':['foo-23','foo-13','foo-02','foo-31'],
'name':['ground-nut oil','almonds','flour','cereals'],
'cost':[567.00,562.56,67.00,76.09],
'quantity':[1,2,3,2]}
# pass this food to the dataframe by specifying rows
dataframe=pandas.DataFrame(food_input,index = ['item-1', 'item-2', 'item-3', 'item-4'])
# display 1 st , 2 nd and 3 rd element from id column
print(dataframe.iat[0,0])
print(dataframe.iat[1,0])
print(dataframe.iat[2,0])Output:
foo-23
foo-13
foo-02
Comparison between loc[] vs iloc[] vs at[] vs iat[]
loc[]andiloc[]are nearly similar -loc[]will return the entire row based on row label butiloc[]will also return the entire row based on row index.at[]andiat[]are nearly similar -at[]will return the data from dataframe based on row position/index and column name butiat[]will also return the the data from dataframe based on row index/position and column index/position.loc[]is label based andiloc[]is position basedat[]andiat[]are used to access only single element from a dataframe butloc[]andiloc[]are used to access one or more elementsat[]andiat[]computation is faster thanloc[]andiloc[]- We can use
loc[]andiloc[]to select data from one or more columns in a dataframe
Summary
In this article we discussed about loc[], iloc[], at[] and iat[]
functions with syntax and examples. We have seen the exact differences
among them using multiple examples.

![Compare loc[] vs iloc[] vs at[] vs iat[] with Examples](/pandas-loc-vs-iloc-at-vs-iat/pandas_ioc_loc_at_iat-800w.webp)

![Pandas Pivot Simplified [In-Depth Tutorial]](/pandas-pivot/python-pandas-pivot_hu_dc49d2c8eb5c965b.webp)
![How to export Python Data Frame to SQL File? [SOLVED]](/how-to-export-python-data-frame-to-sql-file/python-to_sql_hu_70b9ee1fdd36d4a0.webp)
![Convert entire dataframe to lower case [SOLVED]](/lower-case-entire-dataframe/lower-case-entire-dataframe_hu_1bf7489e7caf1ce.webp)
![Convert DataFrame to CSV in Python [With Best Practices]](/convert-pandas-dataframe-to-csv/pandas_to_csv_hu_7e41177f25fde549.webp)

![How to use pandas.Series.map() [Practical Examples]](/panads-series-map-examples/pandas_map_hu_d809cf7fc81fe2f.webp)
![Add Empty Column(s) to Pandas DataFrame [6 Methods]](/add-empty-column-to-pandas-dataframe/pandas_add_empty_column_hu_107fb72230761dd4.webp)
![Pandas to_datetime() Usage Explained [Practical Examples]](/pandas-to-datetime-examples/pandas_to_datetime_hu_95ca8065821e3764.webp)