Імпортуйте дані CSV за допомогою Pandas.read_csv ()

Зміст:

Anonim

У цьому підручнику ви дізнаєтесь:

  • Імпортувати CSV
  • Groupby

Імпортувати CSV

Під час підручника TensorFlow ви будете використовувати набір даних для дорослих. Часто використовується із завданням класифікації. Він доступний за цією URL-адресою https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Дані зберігаються у форматі CSV. Цей набір даних включає вісім категоріальних змінних:

Цей набір даних включає вісім категоріальних змінних:

  • робочий клас
  • освіта
  • подружній
  • окупація
  • відносини
  • гонки
  • секс
  • Батьківщина

більше того, шість безперервних змінних:

  • вік
  • fnlwgt
  • освітня_число
  • capital_gain
  • втрата капіталу

години_тижня

Для імпорту набору даних 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. Цей метод може допомогти вам узагальнити дані за групами. Нижче наведено перелік методів, доступних з groupby:

  • кол: кол
  • хв: хв
  • макс: макс
  • mean: mean
  • медіана: медіана
  • стандартне відхилення: sdt
  • тощо

Усередині groupby () ви можете використовувати стовпець, до якого потрібно застосувати метод.

Давайте подивимося на єдине групування з набором даних для дорослих. Ви отримаєте середнє значення всіх безперервних змінних за типом доходу, тобто вище 50 тис. Або менше 50 тис

df_train.groupby(['label']).mean() 
вік fnlwgt освітня_число capital_gain втрата капіталу години_тижня
етикетці
<= 50K 36,783738 190340,86517 9,595065 148,752468 53,142921 38,840210
> 50 тис 44,249841 188005,00000 11,611657 4006,142456 195,001530 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

Ви можете створити сюжет за наступною групою. Один із способів це зробити - використовувати сюжет після групування.

Щоб створити більш чудовий графік, ви будете використовувати unstack () після mean (), щоб у вас був однаковий багаторівневий індекс, або ви приєднали значення за доходом нижче 50k і вище 50k. У цьому випадку сюжет матиме дві групи замість 14 (2 * 7).

Якщо ви використовуєте блокнот Jupyter, не забудьте додати% matplotlib вбудовано, інакше графік не відображатиметься

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