J'ai donc 366 fichiers CSV et je souhaite copier leurs deuxièmes colonnes et écrivez-les dans un nouveau fichier CSV. Besoin d'un code pour ce travail. J'ai essayé des codes disponibles ici, mais rien ne fonctionne. S'il vous plaît aider. P>
4 Réponses :
En supposant que toutes les 2e colonnes sont la même longueur, vous pouvez simplement faire boucler tous les fichiers. Lisez-les, enregistrez la 2e colonne en mémoire et construisez une nouvelle DF en cours de route.
filenames = ['test.csv', ....] new_df = pd.DataFrame() for filename in filenames: df = pd.read_csv(filename) second_column = df.iloc[:, 1] new_df[f'SECOND_COLUMN_{filename.upper()}'] = second_column del(df) new_df.to_csv('new_csv.csv', index=False)
Hey Dominik, merci d'avoir partagé le code. A peauflé pour tous les fichiers du dossier; fonctionne bien.
Bonjour Ali, j'apprécierais grandement une uppote à la réponse si j'ai été utile, merci. :)
Je ferai sûrement une fois que j'obtiens> 15 points de réputation. Ne pas oublier. Merci encore.
Ceci peut accomplir avec Glob and Pandas:
import glob import pandas as pd mylist = [f for f in glob.glob("*.csv")] df = pd.read_csv(mylist[0]) #create the dataframe from the first csv df = pd.DataFrame(df.iloc[:,1]) #only keep 2nd column for x in mylist[1:]: #loop through the rest of the csv files doing the same t = pd.read_csv(x) colName = pd.DataFrame(t.iloc[:,1]).columns df[colName] = pd.DataFrame(t.iloc[:,1]) df.to_csv('output.csv', index=False)
Merci d'avoir partagé le code. Il y avait une inadéquation entre CSVLIST et MyList. Cependant, il fonctionne simplement pour le tout premier fichier.
S'il vous plaît marquer correctement si cette solution vous a aidé avec votre problème
import glob import pandas as pd mylist = [f for f in glob.glob("*.csv")] df = pd.read_csv(csvList[0]) #create the dataframe from the first csv df = pd.DataFrame(df.iloc[:,0]) #only keep 2nd column for x in mylist[1:]: #loop through the rest of the csv files doing the same t = pd.read_csv(x) colName = pd.DataFrame(t.iloc[:,0]).columns df[colName] = pd.DataFrame(t.iloc[:,0]) df.to_csv('output.csv', index=False)
filenames = glob.glob(r'D:/CSV_FOLDER' + "/*.csv") new_df = pd.DataFrame() for filename in filenames: df = pd.read_csv(filename) second_column = df.iloc[:, 1] new_df[f'SECOND_COLUMN_{filename.upper()}'] = second_column del(df) new_df.to_csv('new_csv.csv', index=False)
J'ai donc essayé ce code pour plusieurs fichiers dans un dossier et cela fonctionne parfaitement bien.
Qu'est-ce que tu as essayé jusque-là?
Veuillez mettre à jour cette question pour fournir les travaux démontrant vos efforts afin que les utilisateurs puissent vous aider à repasser les bugs menant à votre échec. Vous aurez beaucoup plus de chance pour trouver une assistance car cette communauté ne pourrai pas demander aux gens de faire votre travail pour vous. Le travail que vous fournissez doit non seulement démontrer les tentatives que vous avez apportées, mais décrivez également clairement l'échec dont vous avez besoin d'aide pour surmonter.