Exporter valeurs uniques (lignes) python panda excel

Résolu
peter76960 Messages postés 11 Date d'inscription vendredi 24 novembre 2023 Statut Membre Dernière intervention 22 juillet 2024 - 22 juil. 2024 à 17:47
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 24 juil. 2024 à 15:41

Bonjour,

Voici un script qui renvoit toutes les valeurs de mon tableau excel.
J'ai beaucoup de valeurs row['pn'] en doubles.
Je souhaiterai conserver uniquement les valeurs uniques de celle-ci
tout gardant un numéro incrémenté pour chaque ligne différente définit par append (i) i=i+1
Je sais uniquement

obtenir des lignes à valeurs uniques mais pour i=1
en utilisant le script suivant:
 

for index, row in dataframe_feuil1.iterrows():

    ligne.append(million)
    ligne.append(row['kit'])
    ligne.append(row['pn'])
    ligne.append(i)
    '''listing.append(ligne)'''
    if ligne not in unique_ligne:
        unique_ligne.append(ligne)
    i=1
    ligne = []



 

import pandas as pd
import numpy as np
import openpyxl


# Ouverture du fichier Excel
df1= dataframe_feuil1 = pd.read_excel('C:\\Users\\XXXXXX\\PycharmProjects\\pythonProject5\\PIM-creation\\fichier_unique.xlsx',engine='openpyxl',sheet_name='Feuil1')
df1['8million']=df1['8million'].astype(str).str.replace('.0','')
liste2D= [] # va être transformé en Dataframe après remplissage
ligne=[]
unique_ligne=[]
liste_million=[]
listing=[]
i=1
for index,row in dataframe_feuil1.iterrows():# parcourir ligne par ligne

    if(row['8million']!='nan'): # renvoi le PN kit si la cellule est vide ou non
        liste_million.append(row['8million'])

for million in liste_million:

    for index, row in dataframe_feuil1.iterrows():

        ligne.append(million)
        ligne.append(row['kit'])
        ligne.append(row['pn'])
        ligne.append(i)
        listing.append(ligne)
        i=i+1
        ligne = []

print(listing)
df2= pd.DataFrame(listing)
df2.columns=["A","B","C","D"]
df2.to_excel('fichier_result.xlsx',sheet_name='Feuil1',index=False)


Windows / Chrome 126.0.0.0

A voir également:

4 réponses

peter76960 Messages postés 11 Date d'inscription vendredi 24 novembre 2023 Statut Membre Dernière intervention 22 juillet 2024
22 juil. 2024 à 17:55

je voudrais joindre mon fichier excel comment faire 

fichier_unique.xlsx
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
22 juil. 2024 à 18:01

Inutile de partager ton fichier Excel, il est préférable d'ajouter des print() dans ton code, afin d'afficher tes listes.

0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
22 juil. 2024 à 17:59

bonjour,

dans le deuxiéme code que tu partages, il manque la vérification de l'unicité. 

0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
Modifié le 1 oct. 2024 à 16:50

Pourquoi commencer cette nouvelle discussion, plutôt que continuer celle en cours?

0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 812
Modifié le 1 oct. 2024 à 16:51

Bonjour,

Si tu veux un code efficace, il faut utiliser les primitives offertes par pandas, en l'occurrence pandas.DataFrame.drop_duplicates. Regarde cet exemple pour comprendre comment l'utiliser.

Voir le reste de la discussion ici.

Bonne chance

0