У меня есть ряд панд, который выглядит следующим образом: куча unicode
строкПанда Datatype Проблема преобразование
>>> some_id
0 400742773466599424
1 400740479161352192
2 398829879107809281
3 398823962966097921
4 398799036070653952
Name: some_id, dtype: object
я могу сделать следующее, но я теряю точность.
>>> some_id.convert_objects(convert_numeric=True)
0 4.007428e+17
1 4.007405e+17
2 3.988299e+17
3 3.988240e+17
4 3.987990e+17
Name: some_id, dtype: float64
Но если я some_id.astype(int)
, я получаю следующее: ValueError: invalid literal for long() with base 10
Как я могу преобразовать их в int
или int64
типа, сохраняя при этом точность? Я использую Pandas 0.16.2
UPDATE: Я нашел ошибку. some_id.astype(int)
или любая другая его форма должна работать. Где-то по тысячам строк у меня есть, у some_id есть string
текст (не строка номер ed), поэтому он остановил преобразование int64
.
Благодаря
Что произойдет, если вы используете 'some_id.astype (np.int64)'? – dagrha
Какую версию Панд вы используете. Учитывая ваши данные примера выше, у меня не было никаких проблем с преобразованием some_id из объекта в int (Pandas 0.14.1). Кроме того, вы не теряете точность преобразования в числовое, оно просто не отображается. – Alexander
@Alexander может быть время для обновления - 0.16.2 является текущим выпуском :) – MattDMo