У меня есть кадр данных df
выглядит следующим образом:Невозможно изменить тип данных в кадре данных
birth_year person
0 1980 0
1 1981 1
2 1982 2
3 1983 3
4 1984 4
birth_year
колонка выглядит как числа, но когда я проверяю тип данных df['birth_year'].dtype
результат dtype('O')
, так что я думал, что это может быть на самом деле строка, и попытался преобразовать его номера с df['birth_year'].astype('int')
, но получил ошибку:
UnicodeEncodeError: 'decimal' codec can't encode characters in position
0-3: invalid decimal Unicode string
После небольшого поискового запроса я понял (может быть, ошибочно), что в нем есть невидимые персонажи. при доступе к значениям df['birth_year'][0]
значение, которое я получил, составляет 1980L
, а не 1980
.
так что такое тип данных и как его преобразовать в целые числа? Я где-то читал, что если возвращаемый тип данных равен dtype('O')
, это обычно означает, что это строка, но это, похоже, не так.
Попробуйте 'ФР [ 'birth_year']. Astype (INT)', 'не 'int''. – DeepSpace
вы можете попробовать 'df = df.convert_objects (convert_numeric = True)' – EdChum
Tried 'df ['birth_year']. Astype (int)' и получил ту же ошибку –