Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Dealing With Several Conditions | Dealing With Conditions
Advanced Techniques in pandas

book
Dealing With Several Conditions

Sometimes we need several conditions to be applied. For instance, we want to extract data on hazardous asteroids with a small minimum diameter. But how do we write two conditions simultaneously? Look at the table:

The example was included to help you deal with this topic. This code extracts data on large and hazardous asteroids, where the minimum estimated diameter is larger than 3.5 kilometers and 'hazardous' is True.

import pandas as pd
data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/planet', index_col = 0)
data_extracted = data.loc[(data['est_diameter_min'] > 3.5) & (data['hazardous'] == True)]
print(data_extracted)
1234
import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/planet', index_col = 0) data_extracted = data.loc[(data['est_diameter_min'] > 3.5) & (data['hazardous'] == True)] print(data_extracted)
copy

In the output, you can see all the rows that satisfy these two conditions:

  • est_diameter_min > 3.5;

  • hazardous == True.

Look at the following example with the or statement. This code will extract data on extremely small or large asteroids with a minimum estimated diameter less than 0.0005 kilometers and a maximum estimated diameter larger than 20 kilometers:

import pandas as pd
data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/planet', index_col = 0)
data_extracted = data.loc[(data['est_diameter_min'] < 0.0005) | (data['est_diameter_max'] > 20)]
print(data_extracted)
1234
import pandas as pd data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/planet', index_col = 0) data_extracted = data.loc[(data['est_diameter_min'] < 0.0005) | (data['est_diameter_max'] > 20)] print(data_extracted)
copy

In the output, you can see all the rows that satisfy one of these two conditions:

  • est_diameter_min < 0.0005;

  • est_diameter_max > 20.

Tarea

Swipe to start coding

Your task here is to extract data on very bright and not hazardous asteroids. The code should satisfy two conditions:

  • 'absolute_magnitude' is larger than or equal to 25;
  • 'hazardous' is False.

After this, output the random 5 rows of the data_extracted.

Solución

import pandas as pd

data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/planet', index_col = 0)

# Extract data
data_extracted = data.loc[(data['absolute_magnitude'] >= 25) & (data['hazardous'] == False)]

# Output data
print(data_extracted.sample(5))

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 3
import pandas as pd

data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/4bf24830-59ba-4418-969b-aaf8117d522e/planet', index_col = 0)

# Extract data
data_extracted = ___[(data['___'] ___ 25) ___ (data___)]

# Output data
print(___)

Pregunte a AI

expand
ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

some-alt