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