2017-03-10 2 views
0

partie de mon tableau croisé, j'ai trouvé comment réorganiser l'index mais maintenant je suis coincé sur la façon de formater ma sortie de tableau croisé pour montrer les données à la 2ème. virgule.Comment modifier la sortie de mon tableau croisé pour afficher un pourcentage à la deuxième décimale?

J'ai commencé avec ce code

pd.crosstab(data['One'],data['two'], margins=True).apply(lambda r: r/len(data)*100,axis = 1) 

La eteint ressemble à ceci

A   B   C  All 
B 10.0000 40.0000 50.0000 
C 40.0000 10.0000 50.0000 
All 50.0000 50.0000 100.0000 

mais je cherche quelque chose comme

A   B   C  All 
B 10.00% 40.00% 50.00% 
C 40.00% 10.00% 50.00% 
All 50.00% 50.00% 100.00% 

Toutes les idées sur la façon de formater mes données ? Merci encore.

Répondre

0

Vous pouvez faire

pd.options.display.float_format = '{:.2f}%'.format 

Ensuite, si vous affichez la dataframe il aura seulement deux chiffres après la virgule avec le signe%.

0

votre lambda est la principale faisant le travail principal dans cette ligne donc je l'ai fait quelques changements

pd.crosstab(data['One'],data['two'], margins=True).apply(lambda r:"{:.2f}".format((r/len(data)*100))+'%',axis = 1)

+0

Cela a fonctionné à nouveau merci. – Gus

+0

@Gus bienvenue .. –