Одним из возможных решений является astype
метод.
В качестве параметра можно передать словарь «columnName: type»
чтобы указать тип цели для каждого столбца:
df.astype({'volume': np.int64, 'volatility': np.int64})
В качестве тестовых данных я использовал:
data = [['2019-05-13', 3.464018e+08, 3.507323e+09],
['2019-05-14', 3.2024e+08, 3.730523e+09],
['2019-05-15', 3.36706e+08, 3.3246783e+09]]
df = pd.DataFrame(data,columns=['Date','volume', 'volatility'])
Результат конвертации был:
Date volume volatility
0 2019-05-13 346401800 3507323000
1 2019-05-14 320240000 3730523000
2 2019-05-15 336706000 3324678300
Обратите внимание, что только int
недостаточно (или, по крайней мере, может быть).
Причина в том, что в этом случае размер номера зависит от платформы .
На моем компьютере это было int32
, например, значения в столбце волатильность были
преобразовано в -2147483648 (из-за переполнения).
Конечно, для явного использования Numpy типов данных, как я,
Вы должны импортировать numpy как np .
Другой способ - определить целевые типы как string , в данном случае просто 'int64'
.