Pandas read_csv() із прикладом

Імпорт CSV у Pandas

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

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

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

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

І 6 безперервних змінних:

  • вік
  • fnlwgt
  • номер_освіти
  • приріст капіталу
  • капітал_збиток
  • години_тиждень

Метод Pandas read_csv().

Щоб імпортувати набір даних CSV, ви можете використовувати об’єкт pd.read_csv(). Основний аргумент всередині:

Синтаксис Pandas read_csv().

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filepath_or_buffer: шлях або URL-адреса з даними
  • sep=', ': визначте роздільник для використання
  • `імена=Немає`: Назвіть колонки. Якщо набір даних має десять стовпців, потрібно передати десять імен
  • `index_col=Немає`: якщо так, перший стовпець використовується як індекс рядка
  • `skipinitialspace=False`: пропускати пробіли після розділювача.

Щоб дізнатися більше про read_csv(), перегляньте офіційну документацію:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

Pandas read_csv() Приклад

## 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)

Метод Pandas groupby().

Простий спосіб переглянути дані — скористатися методом groupby. Цей метод може допомогти вам узагальнити дані за групами. Нижче наведено список методів, доступних за допомогою методу groupby():

  • рахувати: рахувати
  • хв.: хв
  • макс.: макс
  • середній: середній
  • медіана: медіана
  • стандартне відхилення: стандартне відхилення
  • і т.д.

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

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

df_train.groupby(['label']).mean()
етикетка вік fnlwgt номер_освіти приріст капіталу капітал_збиток години_тиждень
<= 50 тис 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     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

Ви можете створити сюжет, дотримуючись groupby. Один із способів зробити це — використати графік після групування.

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

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

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

Приклад методу Pandas groupby().

Підсумки

  • Щоб імпортувати набір даних CSV Панди, ви можете використовувати об’єкт pd.read_csv().
  • Метод groupby() може допомогти вам узагальнити дані за групами.
  • Ви також можете групувати за кількома стовпцями. Наприклад, ви можете отримати максимальний приріст капіталу відповідно до типу домогосподарства та сімейного стану.