Учебники

7) Импорт данных CSV

В этом уроке вы узнаете:

Импортировать CSV

Во время обучения TensorFlow вы будете использовать набор данных для взрослых. Это часто используется с задачей классификации. Он доступен по этому адресу https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data.

Данные хранятся в формате CSV. Этот набор данных включает в себя восемь категориальных переменных:

Этот набор данных включает в себя восемь категориальных переменных:

  • workclass
  • образование
  • супружеский
  • род занятий
  • отношения
  • гонка
  • секс
  • родная страна

кроме того, шесть непрерывных переменных:

  • возраст
  • 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 csv
import pandas as pd
## Define path data
COLUMNS = ['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:

  • считать: считать
  • мин: мин
  • max: max
  • значит: значит
  • медиана: медиана
  • стандартное отклонение: SDT
  • так далее

Внутри groupby () вы можете использовать столбец, к которому хотите применить метод.

Давайте посмотрим на одну группу с набором данных для взрослых. Вы получите среднее значение всех непрерывных переменных по типу дохода, т.е. выше 50 тыс. Или ниже 50 тыс.

df_train.groupby(['label']).mean()			
возраст fnlwgt education_num прирост капитала capital_loss hours_week
метка
<= 50K 36.783738 +190340,86517 9.595065 148.752468 53.142921 38.840210
> 50K 44.249841 +188005,00000 11.611657 4006.142456 195.001530 45.473026

Вы можете получить минимальный возраст по типу домашнего хозяйства

df_train.groupby ([ ‘этикетка’]) [ ‘возраст’]. мин ()

label
<=50K    17
>50K     19
Name: age, dtype: int64				

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

df_train.groupby(['label', 'marital'])['capital_gain'].max()				
label  marital              
<=50K  Divorced                 34095
       Married-AF-spouse         2653
       Married-civ-spouse       41310
       Married-spouse-absent     6849
       Never-married            34095
       Separated                 7443
       Widowed                   6849
>50K   Divorced                 99999
       Married-AF-spouse         7298
       Married-civ-spouse       99999
       Married-spouse-absent    99999
       Never-married            99999
       Separated                99999
       Widowed                  99999
Name: capital_gain, dtype: int64

Вы можете создать сюжет по группам. Один из способов сделать это – использовать график после группировки.

Чтобы создать более превосходный график, вы будете использовать unstack () после mean (), чтобы у вас был такой же многоуровневый индекс, или вы объединяете значения с доходом ниже 50 тыс. И выше 50 тыс. В этом случае сюжет будет иметь две группы вместо 14 (2 * 7).

Если вы используете Jupyter Notebook, обязательно добавьте% matplotlib inline, иначе график не будет отображаться

%matplotlib inline
df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()
df_plot