Ich verwende Pandas 0.18.1 mit Python 2.7.x. Ich habe einen leeren Datenrahmen, den ich zuerst gelesen habe. Ich sehe, dass die Typen dieser Spalten object
sind, was OK ist. Wenn ich eine Datenzeile zuweise, ändert sich der Typ für numerische Werte in float64
. Ich habe int
oder int64
erwartet. Warum passiert das?Pandas: Warum ist der Standardspalten-Typ für das numerische Float?
Gibt es eine Möglichkeit, eine globale Option zu setzen, damit Pandas weiß, dass numerische Werte sie standardmäßig als int
behandeln, es sei denn, die Daten haben eine .
? Zum Beispiel [0 1.0, 2.]
, erste Spalte ist int
aber andere zwei sind float64
?
Zum Beispiel:
>>> df = pd.read_csv('foo.csv', engine='python', keep_default_na=False)
>>> print df.dtypes
bbox_id_seqno object
type object
layer object
ll_x object
ll_y object
ur_x object
ur_y object
polygon_count object
dtype: object
>>> df.loc[0] = ['a', 'b', 'c', 1, 2, 3, 4, 5]
>>> print df.dtypes
bbox_id_seqno object
type object
layer object
ll_x float64
ll_y float64
ur_x float64
ur_y float64
polygon_count float64
dtype: object