Je suis aller chercher la première occurrence d'une valeur particulière dans une colonne Panda en fonction de son index, comme indiqué ci-dessous:Python Pandas - Remplacer les valeurs d'une partie de la colonne de trame de données basée sur l'indice
first_idx = df1.loc[df1.Column1.isin(['word1','word2'])].index.tolist()[0]
Cela donnera moi l'indice de la première occurrence soit « mot1 » ou « mot2 »
Alors je remplace les anciennes valeurs des enregistrements jusqu'à ce que l'indice déterminé avec de nouvelles valeurs comme indiqué ci-dessous:
df1.head(first_idx)['Column1'].replace({'10': '5'}, inplace=True)
Ceci remplacera tous les '10 qui sont présents jusqu'au premier_idx de l'ensemble de données avec' 5 '. Tous les '10 restants après la valeur first_idx ne seront pas remplacés.
Maintenant, je dois remplacer tous les '10 présents après la valeur first_idx avec' 3's. J'ai essayé ci-dessous en calculant la longueur de la trame de données et en la soustrayant ensuite avec la valeur first_idx.
len(df1) # This will show the actual length/total number of records of a dataframe column.
temp = (len(df1)-first_idx)-1 # This will determine the remaining count of records barring the count of records until first_idx value.
df1.tail(temp) # This will show all records that are present after the first_idx value.
df1.tail(temp)['Column1'].replace({'10': '3'}, inplace=True)
Mais y a-t-il une autre façon de faire la même chose?
Merci @Eran. Ça marche. mais j'ai essayé la même chose avec df1.loc. Il fait aussi le même travail. Si possible, pouvez-vous s'il vous plaît expliquer quelle est la différence entre les deux car les deux obtiennent les mêmes résultats? – JKC
Sure @JKC. Iloc est utilisé pour les numéros de ligne réels. df1.iloc [2: 4] découpera les lignes 2 et 3, quels que soient leurs indices. localisez les tranches en utilisant les indices de votre base de données. Ils peuvent être des nombres ou des non-nombres. Si vos indices sont des nombres ordonnés (comme dans votre cas), les deux auraient exactement le même comportement. Lisez aussi à propos de df.idx [] qui combine les deux. Je ne l'utilise pas beaucoup cependant, je préfère la manière plus explicite de loc et iloc. – Eran