2015-04-14 13 views
6

135061808695 gibi çok büyük sayılarda otomatik olarak üretilen bir excel dosyası var. Excel'e tıkladığınızda excel dosyasında 135061808695 tam numarasını gösterir, ancak otomatik olarak "General" formatı ile görüntü 1.35063E+11 olarak görünür.Pandalar ile Ayrıştırmada Excel'in Bilimsel Gösterimi Yuvarlamadan Kaçınma

Pandalarda ExcelFile'u kullandığımda 135061808695 yerine 1.350618e+11 bilimsel gösterimdeki değeri alır. Panda'ları excel dosyasıyla uğraşmadan tam değeri elde etmenin bir yolu var mı?

+0

API'da (çok) kısa bir bakış, hiçbir şey önermez, ancak, bunu dönüştürmenin nesi yanlıştır? Kendi kodunuz ile düz bir sayıya bilimsel gösterim? – tenwest

+2

Pandalar, "tam değeri" çekiyor olabilirler. Sadece "1.35063e + 11" yi görüntülemesi nedeniyle daha fazla hassasiyet kaydedilmediği anlamına gelmez. Kontrol etmek için '' 15.0f'' gibi bir format ile yazdırın. – JohnE

+0

Ahh ... @JohnE siz haklısınız. Aslında yolculukları tamamladığımda ve bilgiyi daha önce kaybettiğime göre kesinliği yitirdiğim bilgileri saklıyorum. Bu düzeltmek kolaydı. Eğer hızlı bir cevap yazmak istiyorsanız aşağıda size kredi vereceğim. – rhaskett

cevap

5

Pandalar çok iyi tam değeri çekerek ancak varsayılan çıktıda bunu göstermiyor olabilir:

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

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

Standart piton biçimi:

print "%15.0f" % df.x 
135061808695 

Ya pandalar içinde

, bir tamsayı türüne dönüştürmek tamsayı biçimlendirmesi:

df.x.astype(np.int64) 

0 135061808695 
Name: x, dtype: int64