2015-04-14 7 views
6

Ho un file excel prodotto automaticamente con numeri molto grandi occasionali come 135061808695. Nel file excel quando si fa clic sulla cella viene visualizzato il numero completo 135061808695 ma visivamente con il formato "Generale" automatico il numero appare come 1.35063E+11.Evitare l'arrotondamento della notazione scientifica di Excel durante l'analisi con panda

Quando uso ExcelFile nel Pandas l'tira il valore in notazione scientifica 1.350618e+11 invece della piena 135061808695. Esiste un modo per far sì che i Panda possano sfruttare tutto il valore senza problemi con il file excel?

+0

Un (molto) breve sguardo all'API suggerisce no, ma, cosa c'è di sbagliato con la conversione notazione scientifica in un semplice numero con il tuo codice? – tenwest

+2

I panda potrebbero davvero tirare il "pieno valore". Solo perché sta visualizzando '' '1.35063e + 11''' non significa che non ci sia più precisione memorizzata. Stampa con un formato come '' '15.0f''' per verificare. – JohnE

+0

Ahh ... @JohnE hai ragione. In realtà quando giro e immagazzino le informazioni che ho veramente perso la precisione anche se sembrava che l'avessi perso prima. Questo è stato facile da risolvere. Se vuoi scrivere una risposta veloce qui sotto ti darò credito. – rhaskett

risposta

5

Pandas potrebbe benissimo essere tirando il valore completo senza indicare nella sua uscita di default:

df = pd.DataFrame({ 'x':[135061808695.] }) 

df.x 
0 1.350618e+11 
Name: x, dtype: float64 

formato standard di Python:

print "%15.0f" % df.x 
135061808695 

O in panda, convertire in un tipo integer a ottieni formattazione intera:

df.x.astype(np.int64) 

0 135061808695 
Name: x, dtype: int64 
Problemi correlati