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