Pandas read_csv() с примером
Импортировать CSV в Pandas
Во время урока TensorFlow вы будете использовать набор данных для взрослых. Он часто используется с задачей классификации. Он доступен по этому URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Данные хранятся в формате CSV. Этот набор данных включает восемь категориальных переменных:
Этот набор данных включает 8 категориальных переменных:
- рабочий класс
- образование
- брачный
- оккупация
- отношения
- раса
- секс
- родная страна
И 6 непрерывных переменных:
- возраст
- фнлвгт
- образование_номер
- прирост капитала
- капитал_убыток
- часы_неделя
Метод read_csv() в Пандах
Чтобы импортировать набор данных CSV, вы можете использовать объект pd.read_csv(). Основной аргумент внутри:
Синтаксис read_csv() в Пандах
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- путь_файла_или_буфер: Путь или URL-адрес с данными.
- сент=', ': Определите используемый разделитель
- `имена = Нет`: Назовите столбцы. Если в наборе данных десять столбцов, вам нужно передать десять имен.
- `index_col=Нет`: Если да, первый столбец используется как индекс строки.
- `skipinitialspace=False`: Пропускать пробелы после разделителя.
Для получения дополнительной информации о read_csv() ознакомьтесь с официальной документацией:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
Пример 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()
этикетка | возраст | фнлвгт | образование_номер | прирост капитала | капитал_убыток | часы_неделя |
---|---|---|---|---|---|---|
<= 50 КБ | 36.783738 | 190340.86517 | 9.595065 | 148.752468 | 53.142921 | 38.840210 |
> 50K | 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
Вы можете создать сюжет после группировки. Один из способов сделать это — использовать график после группировки.
Чтобы создать более точный график, вы будете использовать unstack() после mean(), чтобы у вас был тот же многоуровневый индекс, или вы объедините значения по доходу ниже 50 50 и выше 14 2. В этом случае на участке будет две группы вместо 7 (XNUMX*XNUMX).
Если вы используете Jupyter ноутбук, обязательно добавьте встроенный %matplotlib, иначе график отображаться не будет.
%matplotlib inline df_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack() df_plot
Резюме
- Чтобы импортировать набор данных CSV в Пандывы можете использовать объект pd.read_csv().
- Метод groupby() может помочь вам суммировать данные по группам.
- Вы также можете группировать по нескольким столбцам. Например, вы можете получить максимальный прирост капитала в зависимости от типа домохозяйства и семейного положения.