0
votes

Itérer sur une colonne de Dataframe à l'aide de la valeur commune dans une liste de Python

df = col_1   col_2   col_
         2           7           11
         2          10           12

2 commentaires

Comment ressemble votre DF final?


{x: y pour x, y dans df.groupby ("col_1")}


4 Réponses :


0
votes

Vous pouvez le faire dans A pour boucle et maintenir la structure DF: xxx

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] ...] à la colonne que vous souhaitez correspondre sur


0 commentaires

0
votes

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


0 commentaires

0
votes

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


0 commentaires

0
votes

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)])


0 commentaires