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.