0
votes

Ajouter un en-tête de colonne à une série

Je suis nouveau sur Python et j'essaie d'intégrer ma série dans un dataframe et de renommer les en-têtes en Mois et Minutes.

Ci-dessous, je regroupe les données en 'df'

             Minutes
endTime             
2019-10   516.386967
2019-11  4423.741683
2019-12  5508.101017
2020-01  3802.073583
2020-02  3790.562850
2020-03  3260.039417
2020-04  1913.841267
2020-05  1554.578183
2020-06  2094.596467
2020-07  3061.289633
2020-08  1676.243450
2020-09  4790.751267
2020-10  6404.273800

Sortie du code ci-dessus

Ensuite, je transforme la série en un dataframe

df1 = pd.DataFrame(df)
print(df1)

À ce stade, l'en-tête de la colonne commence à être à un niveau différent comme s'il se trouvait sur des lignes séparées entrez la description de l'image ici

Je ne peux pas trouver comment corriger cela ou modifier les noms de colonnes d'une autre manière. J'utilise Jupyter Notebook

df = data
df = df.groupby(df['endTime'].dt.strftime('%Y-%m'))['Minutes'].sum().sort_index()
print(df)


9 commentaires

bienvenue à SO! Pouvez-vous coller les données sous forme de texte? Rend la copie difficile si vous utilisez des images


@VivekKalyanarangan lorsque je colle les données, il perd toute mise en forme et je ne vois pas un moyen de joindre le sur une feuille de calcul. un conseil?


formater comme code ... le bouton {} de l'éditeur


Merci pour ça. J'ai ajouté les données.


essayez df.groupby(df['endTime'].dt.strftime('%Y-%m'))['Minutes'].su‌​m().reset_index()


Ahhh merci beaucoup! Cela me rendait fou! Cela ne me donne pas la coche pour accepter votre commentaire comme réponse, mais si vous soumettez à nouveau comme réponse, je coche celle-là :)


terminé! Merci beaucoup!


Btw, groupby trie déjà les données afin que vous n'ayez pas à faire un tri index.


Merci pour cela Joe Ferndz! Je ne m'en suis pas rendu compte. À l'origine, j'avais le mois sous forme de texte, il était donc affiché par ordre alphabétique, c'est pourquoi j'ai cherché à trier par index à la place. Bon à savoir, je peux le supprimer!


3 Réponses :


1
votes

La colonne endTime est l'index du DataFrame après l'exécution de groupby . Cela explique pourquoi il est affiché séparément. Si vous souhaitez récupérer le endTime en tant que colonne régulière dans le DataFrame, vous pouvez simplement exécuter la commande suivante:

df.reset_index(inplace=True)


0 commentaires

1
votes

Tout ce dont tu as besoin c'est

df.reset_index(level=0, inplace=True)


0 commentaires

1
votes

Essayez -

df.groupby(df['endTime'].dt.strftime('%Y-%m'))['Minutes'].sum().reset_index()


0 commentaires