Exporter valeurs uniques (lignes) python panda excel
RésoluBonjour,
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
4 réponses
-
je voudrais joindre mon fichier excel comment faire
fichier_unique.xlsx
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
dans le deuxiéme code que tu partages, il manque la vérification de l'unicité.
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
Pourquoi commencer cette nouvelle discussion, plutôt que continuer celle en cours?
-
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