У цьому підручнику ви дізнаєтесь:
- Імпортувати 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