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.