J'ai une table au format csv qui ressemble à ceci. Je voudrais transposer le tableau pour que les valeurs de la colonne du nom de l'indicateur soient les nouvelles colonnes,
Indicator Country Year Value
1 Angola 2005 6
2 Angola 2005 13
3 Angola 2005 10
4 Angola 2005 11
5 Angola 2005 5
1 Angola 2006 3
2 Angola 2006 2
3 Angola 2006 7
4 Angola 2006 3
5 Angola 2006 6
Je voudrais que le résultat final aime ceci:
Country Year 1 2 3 4 5
Angola 2005 6 13 10 11 5
Angola 2006 3 2 7 3 6
J'ai essayé d'utiliser un cadre de données pandas avec peu de succès.
print(df.pivot(columns = 'Country', 'Year', 'Indicator', values = 'Value'))
Avez-vous des réflexions sur la façon d'accomplir cela?
Merci
Vous pouvez utiliser pivot_table
:
pd.pivot_table(df, values = 'Value', index=['Country','Year'], columns = 'Indicator').reset_index()
cela produit:
Indicator Country Year 1 2 3 4 5
0 Angola 2005 6 13 10 11 5
1 Angola 2006 3 2 7 3 6
C'est une supposition: ce n'est pas un fichier ".csv", mais un Pandas DataFrame importé d'un '.csv'.
Pour faire pivoter ce tableau, vous voulez trois arguments dans votre Pandas "pivot". Par exemple, si df
est votre trame de données:
table = df.pivot(index='Country',columns='Year',values='Value')
print (table)
Cela devrait devrait donner la sortie souhaitée.