2017-04-20 4 views
1

Ich habe einen Pandas Datenrahmen:anderer Wert, wenn sie über Pandas Datenrahmen Iterieren

 name  lat   lon 
0 9999 25.147289 101.362893 
1 10000 48.646000 8.701000 
2 10001 48.646000 8.991000 
3 10002 48.646000 9.453000 
4 10003 48.646000 9.881000 

Als ich über den Pandas Datenrahmen durchlaufen und versuchen, Wert für jede Zeile zu erhalten:

for row in df.iterrows(): 
    print(row[1]['lat']) 

ich 25.147289000000001

Warum die zusätzlichen Ziffern und wie bekomme ich 25.147289?

Antwort

2

Die Float-Werte im Datenframe werden mit der durch dtypes angegebenen Genauigkeit gespeichert. Was Sie sehen, wird von Pandas display.float_format gesteuert, die auf 6 Stellen der Genauigkeit eingestellt ist. Das macht nicht Ändern Sie den tatsächlichen Floaten hinter den Kulissen.

Wenn Sie Ihre print-Anweisung für Sie runden möchten

for row in df.iterrows(): 
    print('{:0.6f}'.format(row[1]['lat'])) 

25.147289 
48.646000 
48.646000 
48.646000 
48.646000 
+0

dank @piRSquared, was ist, wenn ich es zwingen zu schweben? so 'float (row [1] ['lat']'? – user308827

+1

Es ist bereits 'float' ... float (row [1] ['lat'])' wird nichts anderes tun, als es bereits tut. – piRSquared

Verwandte Themen