Я хочу изменить dtype с object на int

#python #pandas #anaconda3

#python #панды #anaconda3

Вопрос:

 df['Value'] = [-2,254.00, 3,452.00, 15,698.00, -6,258.00]
  

Тип данных говорит object. Я хотел бы преобразовать их в целые числа, но я получаю сообщение об ошибке

Ответ №1:

Используйте df.astype :

 In [2329]: df['Value'] = df['Value'].astype(int)

In [2329]: df['Value']
Out[2329]: 
0     -2
1    254
2      3
3    452
4     15
5    698
6     -6
7    258
Name: Value, dtype: int64
  

Комментарии:

1. Итак, цифры следующие 0 -2,254.00 1 3,452.00 2 15,698.00 3 -6,258.00

2. Привет, я показал результат. df['Value'] = df['Value'].astype(int) это моя команда.

Ответ №2:

вы можете попробовать следующий код:

 df['Value'] = df['Value'].astype(dtype='int64')
  

Комментарии:

1. он выдает значение ошибки error: недопустимый литерал для int() с основанием 10: ‘1,000.00’

Ответ №3:

Использовать pd.to_numeric с errors='coerce'

 df['Value'] = pd.to_numeric(df['Value'], errors='coerce')
  

Комментарии:

1. Спасибо, но код удаляет все отрицательные значения

2. пожалуйста, не могли бы вы показать ожидаемый результат?

3. Извините за это. Ожидаемым результатом будут два дополнительных столбца Значение индекса Значение1 Значение2 0 -2,254.00 2254.00 0 1 3,452.00 0 3452.00 2 15,698.00 0 15,698.00 3 -6,258.00 6,258.00 0 Таким образом, отрицательные числа переходят в столбец Value1 без знака -, положительные — в Value2