Импортируйте данные CSV с помощью Pandas.read_csv ()

Содержание:

Anonim

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

  • Импортировать 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