Mettre le nombre de chaque bigram en commun nouvelle colonne

claraxs Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
 PierrotLeFou -

Bonjour,

Je suis assez nouvelle en code et j'aimerais faire une fonction qui permet de calculer le nombre de bigrams communs entre une ligne i et ligne i + 1, pour chaque ligne de mon dataset, puis mettre le résultat dans une nouvelle colonne (à partir de i+1).

J'ai fait le code suivant mais il ne marche pas:

def common_bigram(df):
    result=[]
    common_bigram=0
    for i in range (267):
        x= df[i]
        x1= df[i+1]
        
        for bigram in x:
            if bigram in x1:
                common_bigram +=1
            else: 
                pass
        result.append(common_bigram)
    

print(common_bigram(df["bigrams"]))

Si quelqu'un peut m'aider là-dessus, je bloque vraiment..

Merci

A voir également:

3 réponses

PierrotLeFou
 

Ton append est en colonne 9 alors qu'il devrait être en colonne 13 à l'endroit où tu incrémente ta variable.

Tu n'as pas besoin du else: pass

On n'est pas obligé d'avoir un else sur un if. Par défaut, si la condition est fausse, on ne fait rien.

0
claraxs Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 

Merci, mais comment je peux faire que pour chaque ligne consécutive i, et i +1, le code calcule le nombre de bigrams en commun et le met dans une nouvelle colonne? Cela ne marche toujours pas 

0
PierrotLeFou
 

Tu fais un append des résultats dans une liste. À quoi cette liste était-elle censée te servir?
Ensuite, dans chaque ligne tu as des bigrammes, et tu veux y ajouter autre chose?
Tu pourrais parcourir à nouveau ton dataset à partir de la ligne d'indice 1 au lieu de 0.
Tu pourrais faire un append de la position (par exemple) de la valeur dans  i-1 du résultat dans la ligne  i  de ton dataset.

0