Python Pandas извлечь столбец из кадра данных и удалить - PullRequest
0 голосов
/ 02 марта 2020

У меня много проблем с этим, и компилятор продолжает давать мне совершенно бесполезные комментарии, руби sh.

Вот код на данный момент:

# extract continuous features into a separate variable
continuous_feats = data['age', 'fnlwgt', 'educational-num', 'capital-gain',
                    'capital-loss', 'hours-per-week']

# normalize the continuous features and turn them
# into numpy arrays
for feature in continuous_feats:
    continuous_feats[feature] = (continuous_feats[feature] -  continuous_feats[feature].mean())/continuous_feats[feature].std()

Вот что я пытаюсь сделать:

У меня есть объект с именем «data», который имеет тип DataFrame. Он содержит несколько столбцов, которые я хочу извлечь, заголовки которых перечислены в непрерывном_файтах, затем я хочу их нормализовать (что я сейчас делаю в l oop), и, наконец, я хочу преобразовать их в массив numpy , Я не хочу делать копии чего-либо. Объект «данные» не должен содержать ни одного из этих столбцов.

Если есть более быстрая альтернатива, я весь слух. Но независимо от того, что я пытаюсь, я просто получаю кучу мусора:

Traceback (most recent call last):
 File "/usr/localnfs/Compiler/python/Anaconda3-2019.07/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2657, in get_loc
 return self._engine.get_loc(key)
 File "pandas/_libs/index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc
 File "pandas/_libs/index.pyx", line 132, in pandas._libs.index.IndexEngine.get_loc
 File "pandas/_libs/hashtable_class_helper.pxi", line 1601, in pandas._libs.hashtable.PyObjectHashTable.get_item
 File "pandas/_libs/hashtable_class_helper.pxi", line 1608, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: ('age', 'fnlwgt', 'educational-num', 'capital-gain', 'capital-loss', 'hours-per-week')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
 File "main.py", line 97, in <module>
   continuous_feats = data['age', 'fnlwgt', 'educational-num', 'capital-gain',
 File "/usr/localnfs/Compiler/python/Anaconda3-2019.07/lib/python3.7/site-packages/pandas/core/frame.py", line 2927, in __getitem__
   indexer = self.columns.get_loc(key)
 File "/usr/localnfs/Compiler/python/Anaconda3-2019.07/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2659, in get_loc
   return self._engine.get_loc(self._maybe_cast_indexer(key))
 File "pandas/_libs/index.pyx", line 108, in pandas._libs.index.IndexEngine.get_loc
 File "pandas/_libs/index.pyx", line 132, in pandas._libs.index.IndexEngine.get_loc
 File "pandas/_libs/hashtable_class_helper.pxi", line 1601, in pandas._libs.hashtable.PyObjectHashTable.get_item
 File "pandas/_libs/hashtable_class_helper.pxi", line 1608, in   pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: ('age', 'fnlwgt', 'educational-num', 'capital-gain', 'capital-loss', 'hours-per-week')

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

При извлечении списка столбцов из кадра данных должны быть двойные квадратные скобки. Пожалуйста, попробуйте ниже код.

непрерывный_фиты = данные [['age', 'fnlwgt', 'Educational-Num', 'Прирост капитала', 'Убыток капитала', 'Часы в неделю'] ]

continuous_feats = data[['age', 'fnlwgt', 'educational-num', 'capital-gain',
                'capital-loss', 'hours-per-week']]
0 голосов
/ 02 марта 2020

Если вы хотите извлечь подмножество столбцов из фрейма данных, вам нужно передать имена столбцов в виде списка. Порядок столбцов в результирующем кадре данных будет таким же, как порядок в списке.

continuous_feats = data[['age', 'fnlwgt', 'educational-num', 'capital-gain',
                    'capital-loss', 'hours-per-week']]

Более подробную информацию и опции для нарезки и нарезки кубиков можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...