Ваши данные, вероятно, object
dtype. Это прямая копия / вставка ваших данных. read_csv
интерпретирует его как правильный тип. Обычно вы должны иметь только object
dtype в строковых полях.
In [5]: df = read_csv(StringIO(data),sep='\s+')
In [6]: df
Out[6]:
id value
id 1.00 -0.422000
value -0.42 1.000000
percent -0.72 0.100000
played 0.03 -0.043500
money -0.22 0.337000
other NaN NaN
sy -0.03 0.000219
sz -0.33 0.383000
проверить, являются ли ваши типы dtypes object
In [7]: df.dtypes
Out[7]:
id float64
value float64
dtype: object
Это преобразует этот кадр в object
dtype (обратите внимание, что сейчас смешно)
In [8]: df.astype(object)
Out[8]:
id value
id 1 -0.422
value -0.42 1
percent -0.72 0.1
played 0.03 -0.0435
money -0.22 0.337
other NaN NaN
sy -0.03 0.000219
sz -0.33 0.383
Вот как это сделать (astype(float)
) также работает здесь
In [9]: df.astype(object).convert_objects()
Out[9]:
id value
id 1.00 -0.422000
value -0.42 1.000000
percent -0.72 0.100000
played 0.03 -0.043500
money -0.22 0.337000
other NaN NaN
sy -0.03 0.000219
sz -0.33 0.383000
Это то, что object
dtype будет выглядеть как
In [10]: df.astype(object).dtypes
Out[10]:
id object
value object
dtype: object