J'ai actuellement une liste de Pandas DataFrames. J'essaie d'effectuer une opération sur chaque élément de la liste (c'est-à-dire chaque DataFrame contenu dans la liste), puis enregistrez ce DataFrame dans un fichier CSV.
J'ai attribué un attribut name
à chaque DataFrame, mais je me suis rendu compte que dans certains cas, le programme génère une erreur AttributeError: 'DataFrame' object has no attribute 'name'
.
Voici le code que j'ai.
# raw_og contains the file names for each CSV file.
# df_og is the list containing the DataFrame of each file.
for idx, file in enumerate(raw_og):
df_og.append(pd.read_csv(os.path.join(data_og_dir, 'raw', file)))
df_og[idx].name = file
# I'm basically checking if the DataFrame is in reverse-chronological order using the
# check_reverse function. If it is then I simply reverse the order and save the file.
for df in df_og:
if (check_reverse(df)):
df = df[::-1]
df.to_csv(os.path.join(data_og_dir, 'raw_new', df.name), index=False)
else:
continue
Le programme lance une erreur dans la seconde boucle for où j'ai utilisé df.name
.
Ceci est particulièrement étrange car lorsque j'exécute print(df.name)
, il affiche le nom du fichier. Est-ce que quelqu'un pourrait savoir ce que je fais mal?
Je vous remercie.
Une solution consiste à définir un columns.name
et utilisez-le si nécessaire.
Exemple:
df = pd.DataFrame()
df.columns.name = 'name'
print(df.columns.name)
name