Vous trouverez ci-dessous une capture d'écran d'Excel, mais supposons que nous ayons une base de données Pandas qui ressemble au tableau de gauche où nous avons des dates dans une colonne. Existe-t-il un moyen simple de le transformer en un dataframe qui ressemble au tableau de droite afin que les dates deviennent de nouvelles colonnes?

enter image description here

1
yin 9 mai 2020 à 07:58

3 réponses

Meilleure réponse

Utilisation de df .pivot

import pandas as pd

df = df.pivot(index='Name', columns='Date', values='Candies')
df = df.reset_index().rename_axis(None, axis=1)
df

Sortie:

    Name  4/01/20  4/02/20  4/03/20  4/04/20  4/05/20  4/06/20  4/07/20   4/08/20  4/09/20  
0  Alice        1        2        3        4        5        6        7         8        9
1    Bob        2        4        2        4        3        2        1         3        0
1
komatiraju032 9 mai 2020 à 06:24

Oui, vous pouvez utiliser pandas.read_excel. Cette fonction fournie par le package pandas lit un fichier Excel dans un DataFrame pandas.

# The index and column header can be specified.
pd.read_excel('my_excel.xlsx', index_col=None, header=None)
0
Victor S 9 mai 2020 à 05:20

Vous pouvez lire le .xlsx comme @victor proposé ci-dessus (changer le paramètre comme il convient).

 df=pd.read_excel('my_excel.xlsx')

Regroupez le bloc de données par les colonnes «nom» et «date» et obtenez la somme des bougies.

 df_grouped=df.groupby(['name','date'])['candles'].agg('sum').reset_index()

Utilisez maintenant 'pivot_table méthode pandas pour faire pivoter les résultats groupés.

 df_pivot=df_grouped.pivot_table('candles', 'name', 'date')
0
Sudeepa Nadeeshan 9 mai 2020 à 06:33