Giro ogni numero in una Python panda frame di dati da 2 decimali

Questo funziona p_table.apply(pd.Series.round) tuttavia non ha decimali

La documentazione dice

import pandas as pd

Series.round(decimals=0, out=None)

ho provato questo p_table.apply(pd.Series.round(2)) ma questo errore:

unbound method round() must be called with Series instance as first argument (got int instance instead)

Come faccio a turno tutti gli elementi nel frame di dati a due cifre decimali?

[MODIFICA] Capito.

import numpy as np
np.round(p_table, decimals=2)
Che cosa è il pd? si definiscono per me per favore??
È possibile inviare una risposta a una domanda e poi accetta. Questo può mantenere questo da appendere in giro come uno zombie domanda.

OriginaleL’autore Tristan Forward | 2014-08-12

4 Replies
  1. 8

    Dal 0.17.0 versione si può fare .round(n)

    df.round(2)
          0     1     2     3
    0  0.06  0.67  0.77  0.71
    1  0.80  0.56  0.97  0.15
    2  0.03  0.59  0.11  0.95
    3  0.33  0.19  0.46  0.92
    
    df
              0         1         2         3
    0  0.057116  0.669422  0.767117  0.708115
    1  0.796867  0.557761  0.965837  0.147157
    2  0.029647  0.593893  0.114066  0.950810
    3  0.325707  0.193619  0.457812  0.920403

    OriginaleL’autore piroot

  2. 2

    che: data.apply(lambda x: np.round(x, decimals=2)) — timeit.timer per 100x: 0.00356676544494

    è lo stesso, ma più lento, come: np.round(data,decimals=2) — timeit.timer per 100x: 0.000921095

    per esempio entrambe le dà:

                        x     y     z
    Input Sequence                   
    1                5.60  0.85 -6.50
    2                5.17  0.72 -6.50
    3                5.60  0.89 -6.28
    4                5.17  0.76 -6.29

    per i dati:

                          x       y       z
    Input Sequence                         
    1                5.6000  0.8519 -6.5000
    2                5.1730  0.7151 -6.5000
    3                5.6000  0.8919 -6.2794
    4                5.1724  0.7551 -6.2888
    5                5.6000  0.9316 -6.0587

    OriginaleL’autore

  3. 0
            A       B    C
    0       t       8    10.958904
    1       w       2    98.630137

    Per arrotondare la colonna C è possibile utilizzare questo:

    df['c']=df['c'].apply(lambda x:round(x,2))

    L’output sarà:

            A       B    C
    0       t       8    10.96
    1       w       2    98.63

    OriginaleL’autore Abhinav Vajpeyi

Lascia un commento