To delete strings in a list non_dogs
from a dataframe clean_images
, you can use a for loop and the drop
method of a dataframe. The code would look like this:
for breed in non_dogs:
clean_breeds = clean_images[(clean_images['dog_breed'] == breed)].index
clean_images.drop(clean_breeds, inplace=True)
This code will loop through each string in the non_dogs
list. For each iteration, it will find all the rows in the dataframe clean_images
where the value in the dog_breed
column is equal to the current string. The indices of those rows will be stored in the variable clean_breeds
. Then, those rows will be dropped from the dataframe using the drop
method. The inplace=True
argument makes sure that the changes are made to the dataframe itself, rather than creating a new dataframe with the changes.
Here's an example to help illustrate the code:
import pandas as pd
# Create a sample dataframe
clean_images = pd.DataFrame({'dog_breed': ['tiger_shark', 'labrador', 'walking_stick', 'beagle', 'water_bottle']})
# Create a list of strings to delete from the dataframe
non_dogs = ['tiger_shark', 'walking_stick', 'water_bottle']
# Use a for loop to delete the strings in the list from the dataframe
for breed in non_dogs:
clean_breeds = clean_images[(clean_images['dog_breed'] == breed)].index
clean_images.drop(clean_breeds, inplace=True)
# The resulting dataframe only contains rows with dog breeds
print(clean_images)
The output of this code will be:
dog_breed
1 labrador
3 beagle