df = col_1 col_2 col_
2 7 11
2 10 12
4 Réponses :
Vous pouvez le faire dans A pour boucle et maintenir la structure DF: J'imprime les DFS résultants ci-dessus, mais vous pouvez évidemment faire ce que vous voulez. Vous modifieriez le 0 en df [df [0] ...] code> à la colonne que vous souhaitez correspondre sur p> p>
Vous pouvez utiliser l'indexation de base de Dataframe et df.empty code>. La boucle va casser lorsque la première non-correspondance se produit. li = [1, 2, 3, 4, 5]
for n in li:
filtered_df = orig_df[orig_df['col_1'] == n]
if filtered_df.empty:
break
# rest of logic with filtered_df
Vous pouvez faire boucler la liste et créer un nouveau Dataframe en faisant correspondre la valeur d'itération de la liste avec COL_1.
mylist = [1,2,3,4,5]
for i in mylist:
new_df = df[df['col_1'] == i]
# do stuff with your new dataframe
Vous pouvez également le faire comme ceci, au lieu de la fonction Lambda, vous pouvez transmettre votre fonction personnalisée qui traite chaque partie de DataFrame. Ici, la fonction Lambda ne filtrait que des valeurs de filtrage dans "Col_1" en LST. Un bénéfice de cette méthode est que vous obtiendrez une nouvelle source de données à partir de vous en résulte à la fin
lst=[1,2,3,4,5]
result = df.groupby("col_1").apply(lambda x: x[x["col_1"].isin(lst)])
Comment ressemble votre DF final?
{x: y pour x, y dans df.groupby ("col_1")}