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
Decemberde la chaîneZ: \ Ruchika \ Citymax_Dec06 \ SVCDs \ December - SVCD \ UAE _ Citymax Claypot Burdubai_fullcampaignfile.csvavec un regex ?@JoshFriedlander oui