style columns all python format pandas dataframe

style - python pandas display all columns



Py Pandas.format(dataframe) (1)

import pandas as pd import numpy as np data = np.random.random((8,3))*10000 df = pd.DataFrame (data) pd.options.display.float_format = ''{:20,.2f}''.format print(df)

rendimientos (salida aleatoria similar a)

0 1 2 0 4,839.01 6,170.02 301.63 1 4,411.23 8,374.36 7,336.41 2 4,193.40 2,741.63 7,834.42 3 3,888.27 3,441.57 9,288.64 4 220.13 6,646.20 3,274.39 5 3,885.71 9,942.91 2,265.95 6 3,448.75 3,900.28 6,053.93

La docstring para pd.set_option o pd.describe_option explica:

display.float_format: [default: None] [currently: None] : callable The callable should accept a floating point number and return a string with the desired format of the number. This is used in some places like SeriesFormatter. See core.format.EngFormatter for an example.

Como novato de Python, recientemente descubrí que con Py 2.7 puedo hacer algo como:

print ''{:20,.2f}''.format(123456789)

que dará la salida resultante:

123,456,789.00

Ahora estoy buscando tener un resultado similar para pandas df, así que mi código era como:

import pandas as pd import random data = [[random.random()*10000 for i in range(1,4)] for j in range (1,8)] df = pd.DataFrame (data) print ''{:20,.2f}''.format(df)

En este caso tengo el error:

Unknown format code ''f'' for object of type ''str''

¿Alguna sugerencia para realizar algo como ''{:20,.2f}''.format(df) ?

Como ahora mi idea es indexar el marco de datos (es pequeño), luego formatee cada flotador individual dentro de él, se le puede asignar astype (str), y reconstruir el DF ... pero se ve tan feo :-( y yo '' Ni siquiera estoy seguro de que funcione ...

Qué piensas ? Estoy atascado ... y me gustaría tener un mejor formato para mis marcos de datos cuando estos se convierten a tablas de informes.