Преобразование строковых значений в целочисленные значения в пандах - PullRequest
0 голосов
/ 17 октября 2019

Я работаю над функцией, чтобы превратить строковые значения в целые числа для данного столбца. Вот функция:

def turn_to_int(value):
    if value == 'Younger than 5 years':
        return 5
    elif value == 'Older than 85':
        return 85
    else:
        pass

Однако, когда я пытаюсь использовать карту или применить функцию, я получаю сообщение об ошибке:

survey_strip_up = survey_strip['Age1stCode'].apply(turn_to_int)

Эти два значения наверняка существуют, однако яполучите этот код ошибки:

    KeyError                                  Traceback (most recent call last)
<ipython-input-14-c000da272bb4> in <module>
      7         pass
      8 
----> 9 survey_strip_up = survey_strip['Age1stCode'].apply(turn_to_int)

~\Anaconda3\lib\site-packages\pandas\core\series.py in __getitem__(self, key)
    866         key = com.apply_if_callable(key, self)
    867         try:
--> 868             result = self.index.get_value(self, key)
    869 
    870             if not is_scalar(result):

~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_value(self, series, key)
   4373         try:
   4374             return self._engine.get_value(s, k,
-> 4375                                           tz=getattr(series.dtype, 'tz', None))
   4376         except KeyError as e1:
   4377             if len(self) > 0 and (self.holds_integer() or self.is_boolean()):

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_value()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_value()

pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas/_libs/index_class_helper.pxi in pandas._libs.index.Int64Engine._check_type()

KeyError: 'Age1stCode'

Кто-нибудь сможет помочь?

1 Ответ

0 голосов
/ 17 октября 2019

вы можете сопоставить словарь с колонкой. Переназначить на то же имя столбца, чтобы перезаписать, или (как я обычно делаю) создать новый сопоставленный столбец в том же df:

d = {'Younger than 5 years': 5, 'Older than 85': 85}
survey_strip['new_col'] = survey_strip['Age1stCode'].map(d)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...