Как выбрать конкретный столбец c в Excel с помощью python? - PullRequest
0 голосов
/ 27 мая 2020

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

Когда я пытаюсь распечатать функцию head (data.head ()), я получаю это

id;diagnosis;radius_mean;texture_mean;perimeter_mean;area_mean;smoothness_mean;compactness_mean;concavity_mean;concave points_mean;symmetry_mean;fractal_dimension_mean;radius_se;texture_se;perimeter_se;area_se;smoothness_se;compactness_se;concavity_se;concave points_se;symmetry_se;fractal_dimension_se;radius_worst;texture_worst;perimeter_worst;area_worst;smoothness_worst;compactness_worst;concavity_worst;concave points_worst;symmetry_worst;fractal_dimension_worst

Когда я пытаюсь сделать столбец id метками, используя следующий код:

train_labels = data['id'].values

, это не работает. Вместо этого отображается это длинное сообщение об ошибке:

KeyError                                  Traceback (most recent call last)
C:\Users\win10\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
   2896             try:
-> 2897                 return self._engine.get_loc(key)
   2898             except KeyError:

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

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

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: ';id'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-45-23e840b4d870> in <module>
----> 1 train_labels = data[';id'].values

C:\Users\win10\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
   2978             if self.columns.nlevels > 1:
   2979                 return self._getitem_multilevel(key)
-> 2980             indexer = self.columns.get_loc(key)
   2981             if is_integer(indexer):
   2982                 indexer = [indexer]

C:\Users\win10\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
   2897                 return self._engine.get_loc(key)
   2898             except KeyError:
-> 2899                 return self._engine.get_loc(self._maybe_cast_indexer(key))
   2900         indexer = self.get_indexer([key], method=method, tolerance=tolerance)
   2901         if indexer.ndim > 1 or indexer.size > 1:

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

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

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'id'

Итак, как я могу получить какой-либо столбец c в моем наборе данных?

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Набор данных не разделен запятыми, а разделен точкой с запятой, поэтому вам необходимо передать параметр в функции read_csv, который имеет вид sep = ';' и это решит вашу проблему.

data = pd.read_csv('file_name', sep = ';')
data['column_name']

Вы сможете получить столбец для этого набора данных.

0 голосов
/ 27 мая 2020

Похоже, вы читали файл, используя как минимум неправильный разделитель (sep). По умолчанию pd.read_csv использует ,, а в data.head() ; разделители видны. Если вы используете pd.read_csv, попробуйте передать sep=';'.

Код, который вы используете для доступа к определенному столбцу c (data['id']), в остальном кажется правильным.

Надеюсь это помогает!

...