Donc, j'ai créé une trame de données comme suit - maintenant, dans mon annuaire, j'ai un dossier appelé des images, où j'ai tous les fichiers .bmp stockés (1.bmp, 2.BMP, 3.BMP, 4.BMP, etc.). P> J'essaie d'écrire un script, le script trouve automatiquement les fichiers dans "image_name" dans la trame de données et renvoie respectivement leur résultat et leurs valeurs classées. P> import pandas as pd
import glob
import os
data = pd.read_csv("filename.csv")
for file in glob.glob("*.bmp"):
fname = os.path.basename(file)
4 Réponses :
On dirait que vous voulez juste accéder à la ligne où image_name code> est identique à celui du fichier et obtenez le résultat résultat code> et classifié code> Colonnes. Essayez ceci: p> import pandas as pd
from io import StringIO
df = pd.read_csv(StringIO("""
id | Image_name | result | classified
01 | 1.bmp | 0 | 10
02 | 2.bmp | 1 | 11
03 | 3.bmp | 0 | 10
04 | 4.bmp | 2 | 12
"""), sep=r"\s+\|\s+")
file_example = "2.bmp"
print(df[df['Image_name'] == file_example][["result", "classified"]])
Obtenez d'abord tous les noms d'images du dossier et stockez dans une liste
id Image_name result classified 0 1 1.bmp 0 10 1 2 2.bmp 1 11 2 3 3.bmp 0 10 3 4 4.bmp 2 12
Vous pouvez utiliser un masquage booléen pour cela. Vous pouvez en savoir plus sur le lien ci-dessous. https://pandas.pydata.org/pandas-docs/stable/ user_guide / indexing.html espère que cela a aidé! p> p>
Si vous auriez besoin du même algo pour beaucoup d'images (peu de milliers / centaines de milliers). Il est préférable d'utiliser la colonne nécessaire pour filtrer comme index de votre Dataframe avant de procéder à la méthode espère que cela aide :)) p> p> .ISIN () CODE>.
Votre code initial est requis
"Résultat et valeurs classées respectivement." que veux-tu dire?