J'ai une liste de 5 fichiers Excel dans un chemin spécifique comme mentionné ci-dessous: 'Z: \\ Ruchika \\ Citymax_Dec06 \\ SVCDs \\ ** \\ * Claypot * .csv'.
La liste de 5 fichiers Excel et les chemins sont indiqués ci-dessous
m=['November','December','October','September','August'] def extract(folderpath): final=glob.glob(folderpath) frames = [] for file in final: j=0 df = pd.read_csv(file, error_bad_lines=False) df['Month']=m[j] frames.append(df) j=j+1 mergedfile = pd.concat(frames) return mergedfile a=extract('Z:\\Ruchika\\Citymax_Dec06\\SVCDs\\**\\*Claypot*.csv') Input : a.shape Ouput : (3232487, 31) Input : a['Month'].value_counts() Output : November 3232487 Name: Month, dtype: int64
Maintenant, j'essaie de récupérer le nom du mois de chaque nom de fichier Excel et de l'ajouter à mes cadres de données selon le code ci-dessous, mais être frappé car je ne peux récupérer que pour le mois de novembre, ce qui est incorrect. Veuillez m'aider
['Z:\\Ruchika\\Citymax_Dec06\\SVCDs\\December - SVCD\\UAE _ Citymax _Claypot_ Burdubai_fullcampaignfile.csv', 'Z:\\Ruchika\\Citymax_Dec06\\SVCDs\\January2019 - SVCD\\UAE _ Citymax _Claypot_ Burdubai_fullcampaignfile.csv', 'Z:\\Ruchika\\Citymax_Dec06\\SVCDs\\November - SVCD\\UAE _ Citymax _ Claypot_BD_fullcampaignfile.csv', 'Z:\\Ruchika\\Citymax_Dec06\\SVCDs\\October - SVCD\\UAE _ Citymax _Claypot_ Burdubai_fullcampaignfile.csv', 'Z:\\Ruchika\\Citymax_Dec06\\SVCDs\\sept - svcd\\UAE _ Claypot _ Burdubai_fullcampaignfile.csv']
3 Réponses :
Je suppose que cela peut être n'importe quel mois, alors pourquoi ne pas vérifier pendant des mois:
filename = r'Z:\Ruchika\Citymax_Dec06\SVCDs\December - SVCD\UAE _ Citymax Claypot Burdubai_fullcampaignfile.csv' for month in ['October', 'November', 'December']: # List of months if month in filename: print('Month is:', month)
month = [x for x in month_list if x in my_filename][0] my_df['month'] = month
Vous pouvez utiliser str.split
avec pd.DataFrame. attribuer
:
file_path = r'Z:\Ruchika\Citymax_Dec06\SVCDs\December - SVCD\UAE _ Citymax Claypot Burdubai_fullcampaignfile.csv' file_month = file_path.rsplit('\\', 2)[1].split(' - ')[0] # December df = pd.read_csv(file_path).assign(Month=file_month)
Qu'avez-vous essayé? Où es-tu coincé? Ou attendez-vous que les gens fassent votre travail pour vous?
Vous souhaitez donc ajouter à chaque fois une colonne contenant uniquement le mot «décembre»?
@JoshFriedlander Je voulais ajouter une colonne "Mois" dans laquelle elle ne contient que le mot "Décembre" à chaque ligne du bloc de données
@LieRyan J'ai essayé d'utiliser la boucle for et l'instruction if, mais je suis resté coincé au milieu
Vous l'avez dans votre code,
df ['Month'] = 'December'
. Sur quoi êtes-vous coincé?@JoshFriedlander Je n'arrive pas à récupérer le mot «décembre» du nom du fichier et à l'attribuer à la colonne «Mois» dans df
@JoshFriedlander J'ai montré le code uniquement pour référence que je dois réaliser
votre question est donc de savoir comment extraire la chaîne
December
de la chaîneZ: \ Ruchika \ Citymax_Dec06 \ SVCDs \ December - SVCD \ UAE _ Citymax Claypot Burdubai_fullcampaignfile.csv
avec un regex ?@JoshFriedlander oui