2015-04-14 7 views
6

Ich habe eine Excel-Datei automatisch mit gelegentlichen sehr großen Zahlen wie 135061808695 erzeugt. In der Excel-Datei, wenn Sie auf die Zelle klicken, zeigt es die vollständige Nummer 135061808695 jedoch visuell mit dem automatischen "General" Format die Nummer erscheint als 1.35063E+11.Vermeidet die wissenschaftliche Notation von Excel beim Analysieren mit Pandas

Wenn ich ExcelFile in Pandas verwende, zieht es den Wert in wissenschaftlicher Notation 1.350618e+11 anstelle der vollen 135061808695. Gibt es eine Möglichkeit, Pandas dazu zu bringen, den vollen Wert zu ziehen, ohne mit der Excel-Datei in Verlegenheit zu geraten?

+0

Ein (sehr) kurzer Blick auf die API schlägt vor, nein, aber was ist falsch mit der Konvertierung wissenschaftliche Notation in eine einfache Zahl mit eigenem Code? – tenwest

+2

Pandas könnten sehr gut den "vollen Wert" ziehen. Nur weil es '' '1.35063e + 11''' anzeigt, bedeutet das nicht, dass nicht mehr Präzision gespeichert wird. Ausdruck mit einem Format wie '' '15.0f''' zum Überprüfen. – JohnE

+0

Ahh ... @JohnE du bist richtig. Es ist tatsächlich, wenn ich die Information hinunter rolle und speicher, dass ich wirklich die Präzision verliere, obwohl es schien, dass ich es früher verloren habe. Das war einfach zu beheben. Wenn Sie unten eine kurze Antwort schreiben wollen, gebe ich Ihnen Kredit. – rhaskett

Antwort

5

Pandas sehr gut könnte den vollen Wert Strang ziehen, aber nicht in ihrer Standardausgabe zeigt:

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

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

Standard-Python-Format:

print "%15.0f" % df.x 
135061808695 

Oder in Pandas, umwandeln in eine ganze Zahl Typ Get Integer-Formatierung:

df.x.astype(np.int64) 

0 135061808695 
Name: x, dtype: int64 
Verwandte Themen