Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Getting Familiar With lambda Functions | Getting Familiar With Indexing and Selecting Data
Advanced Techniques in pandas

book
Getting Familiar With lambda Functions

Sometimes we need to put some conditions on the indices. In these cases, you need to use a lambda function inside iloc[].

Let's figure out what we can do using lambda:

python
data.iloc[lambda x: x.index < 5]

This code will output the first five rows of the dataset, the rows with the indices 0, 1, 2, 3, and 4.

  • lambda x - x is the argument we will work with (the item of the data set);
  • x.index - extracts only values of rows' indices;
  • x.index < 5 - the condition according to which we will extract data. Here, only rows with indices that are less than 5.
Task

Swipe to start coding

Your task here is to divide data into two groups: one has odd indices and the other even. Follow the algorithm:

  1. Import the pandas library with the pd alias.
  2. Read the csv file.
  3. Extract only rows with even indices:
    • Apply the .iloc[] attribute to the data;
    • Within the .iloc[] attribute, apply the lambda function with the x argument;
    • Set a condition to check if the number is even (if you do not know how to do this, check the hint).
  4. Extract only rows with odd indices:
    • Apply the .iloc[] attribute to the data;
    • Within the .iloc[] attribute, apply the lambda function with the x argument;
    • Set a condition to check if the number is odd (if you do not know how to do this, check the hint).
  5. Output data:
    • Output the first five rows of the even indices;
    • Output the last five rows of the odd indices.

Solution

# Import the `pandas` library
import pandas as pd

# Read the csv file
data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/IMDb_Data_final.csv')

# Extract data with even indices
even = data.iloc[lambda x: x.index % 2 == 0]
# Extract data with odd indices
odd = data.iloc[lambda x: x.index % 2 != 0]

# Output data
print(even.head(), odd.tail())

Everything was clear?

How can we improve it?

Thanks for your feedback!

Section 1. Chapter 5
# Import the `pandas` library
import ___

# Read the csv file
data = ___.___('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/IMDb_Data_final.csv')

# Extract data with even indices
even = data.___[lambda ___: x.___ % 2 ___ 0 ]
# Extract data with odd indices
odd = ___[___: x.index % 2 ___ 0 ]

# Output data
___(even.___, ___)
toggle bottom row
some-alt