0
votes

Comment compiler plusieurs fichiers Excel dans l'ordre numérique (fichier1.xls, fichier2.xls, etc.) dans un fichier Python?

J'essaie de compiler plusieurs fichiers .xls ensemble. J'ai trouvé du code qui fonctionne mais il a mis dans les fichiers hors de l'ordre. Les fichiers sont des noms therm_sensor1.xls, therm_sensor2.xls, etc. J'ai besoin de la sortie pour être en ordre numérique, mais mon code actuel semble avoir brouillé. Je suis très nouveau au codage de l'ordinateur afin qu'une explication serait utile :) De plus, ma sortie actuelle a toutes les données, à l'exception des 6 lignes supérieures. Je ne sais pas pourquoi cela fait cela. XXX PRE>

Sortie: P>

6    1.739592e-05  0.30           NaN

7    2.024840e-05  0.35           NaN

8    2.309999e-05  0.40           NaN

...

502  2.949562e-10  0.95           NaN

503  3.113220e-10  1.00           NaN


2 commentaires

Python pour la boucle repose sur le motif d'itérateur. Si vous comprenez l'itérateur ( glob.glob ('therm_sensors * .xls ») ), vous comprendrez le flux de programme.


Au lieu de GLOB, vous pouvez simplement essayer d'ouvrir des fichiers dans une boucle - par exemple. Pour i dans la plage (1,10) (la plage est toujours une plage, dans l'ordre), puis le nom de fichier dans la boucle est 'therm_sensor {}. XLS'.Format (i) < / code>.


3 Réponses :


0
votes

est un problème avec l'ordre de lecture ou de tri après l'annexe? Pour le premier, un tri simple sur la liste des fichiers ferait l'affaire et pour plus tard une solution simple serait d'ajouter une colonne d'index incrémentielle


0 commentaires

0
votes

Le problème ici est (probablement) en raison de la différence de la manière dont les humains et les ordinateurs ont tendance à trier les choses. Prenez une liste comme ceci:

sorted(glob.glob('therm_sensor*.xls'), key=lambda s: int(s[12:-4]))


0 commentaires

0
votes

J'ai eu quelque chose de problème similaire, finalement, j'ai compris une façon. Je vais donc vous donner la solution qui a fonctionné pour moi. Une chose essentielle que j'ai faite était de nommer les noms de colonne avant de passer à Dataframe. Voir si cela aide.

fileList=glob.glob("*.csv")
    dfList=[]
    colnames=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34]
    for filename in fileList:
        print(filename)
        df=pd.read_csv(filename, header=None)
        dfList.append(df)
    concatDf=pd.concat(dfList, axis=0)
    concatDf.columns=colnames
    #concatDf.to_csv(outfile, index=None) -# You dont need this. 
concatenate()


0 commentaires