web-dev-qa-db-fra.com

L'objet DataFrame n'a pas d'attribut 'nom'

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.

2
Seankala

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
0
salhin