В этом руководстве вы узнаете:
- Импортировать CSV
- Группа по
Импортировать CSV
Во время обучения TensorFlow вы будете использовать набор данных для взрослых. Часто используется с задачей классификации. Он доступен по этому URL-адресу https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data.
Данные хранятся в формате CSV. Этот набор данных включает восемь категориальных переменных:
Этот набор данных включает восемь категориальных переменных:
- рабочий класс
- образование
- супружеский
- Занятие
- отношение
- раса
- секс
- родная страна
кроме того, шесть непрерывных переменных:
- возраст
- fnlwgt
- education_num
- прирост капитала
- capital_loss
hours_week
Чтобы импортировать набор данных CSV, вы можете использовать объект pd.read_csv (). Основной аргумент внутри:
Синтаксис:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Путь или URL с данными
- sep = ',': определите используемый разделитель
- `names = None`: Назовите столбцы. Если в наборе данных десять столбцов, вам нужно передать десять имен
- index_col = None: Если да, первый столбец используется как индекс строки
- `skipinitialspace = False`: пропускать пробелы после разделителя.
Дополнительные сведения о readcsv () см. В официальной документации.
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Рассмотрим следующий пример
## Import csvimport pandas as pd## Define path dataCOLUMNS = ['age','workclass', 'fnlwgt', 'education', 'education_num', 'marital','occupation', 'relationship', 'race', 'sex', 'capital_gain', 'capital_loss','hours_week', 'native_country', 'label']PATH = "https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data"df_train = pd.read_csv(PATH,skipinitialspace=True,names = COLUMNS,index_col=False)df_train.shape
Выход:
(32561, 15)
Группа по
Простой способ просмотреть данные - использовать метод groupby. Этот метод может помочь вам суммировать данные по группам. Ниже приведен список методов, доступных с groupby:
- count: count
- мин: мин
- макс: макс
- означает: означает
- медиана: медиана
- стандартное отклонение: sdt
- так далее
Внутри groupby () вы можете использовать столбец, в котором хотите применить метод.
Давайте посмотрим на одну группу с набором данных для взрослых. Вы получите среднее значение всех непрерывных переменных по типу дохода, т. Е. Выше 50 тыс. Или ниже 50 тыс.
df_train.groupby(['label']).mean()
возраст | fnlwgt | education_num | прирост капитала | capital_loss | hours_week | |
метка | ||||||
<= 50 КБ | 36,783738 | 190340,86517 | 9,595065 | 148,752468 | 53.142921 | 38,840210 |
> 50 тыс. | 44,249841 | 188005,00000 | 11,611657 | 4006.142456 | 195,00 1530 | 45,473026 |
Вы можете получить минимальный возраст по типу семьи
df_train.groupby (['label']) ['age']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Вы также можете группировать по нескольким столбцам. Например, вы можете получить максимальный прирост капитала в зависимости от типа домохозяйства и семейного положения.
df_train.groupby(['label', 'marital'])['capital_gain'].max()label marital<=50K Divorced 34095Married-AF-spouse 2653Married-civ-spouse 41310Married-spouse-absent 6849Never-married 34095Separated 7443Widowed 6849>50K Divorced 99999Married-AF-spouse 7298Married-civ-spouse 99999Married-spouse-absent 99999Never-married 99999Separated 99999Widowed 99999Name: capital_gain, dtype: int64
Вы можете создать сюжет после groupby. Один из способов сделать это - использовать график после группировки.
Чтобы создать более качественный график, вы будете использовать unstack () после mean (), чтобы у вас был тот же многоуровневый индекс, или вы объедините значения по доходу ниже 50k и выше 50k. В этом случае на участке будет две группы вместо 14 (2 * 7).
Если вы используете Jupyter Notebook, обязательно добавьте% matplotlib inline, иначе график не будет отображаться.
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot