#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