2016-08-21 2 views
2

Ich habe folgendes:Warum diese Tupel Werte verlieren scheinbar ihre Präzision

import pandas as pd 
def TupFirst(x): 
    return x[0] 
def TupSecond(x): 
    return x[1] 

df = pd.DataFrame(data = {'colX': [(51.2990505474, 0.802680507953),(51.7491674401, -4.96357522689)]}) 
df['colY'] = df['colX'].apply(TupFirst) 
df['colZ'] = df['colX'].apply(TupSecond) 
df 

, die die folgenden Datenrahmen zurück:

colX        colY  colZ 
0 (51.2990505474, 0.802680507953)  51.299051 0.802681 
1 (51.7491674401, -4.96357522689)  51.749167 -4.963575 

Warum werden die Werte in Coly und Colz gerundet werden?

+1

Sie können sehen, es ist voller Genauigkeit gespeichert, wenn Sie tun 'df.colY [0]' zum Beispiel. Die Rundung ist nur auf die Ausgabeeinstellungen zurückzuführen, die Sie ändern können, indem Sie die Optionen ändern (http://pandas.pydata.org/pandas-docs/stable/options.html). – chthonicdaemon

+1

'pd.set_option ('precision', 10)' sollte mehr Ziffern hinzufügen. – Abdou

Antwort

2

Was Sie sehen, ist das Ergebnis einer Anzeigekonfiguration in Pandas. Die volle Präzision ist immer noch da. Prüfen Sie es mit:

print(df.loc[1, 'colz'])

Verwandte Themen