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():

  • брои: брои
  • мин.: мин
  • макс.: макс
  • средно: средно
  • медиана: медиана
  • стандартно отклонение: sdt
  • и т.н.

Вътре в groupby() можете да използвате колоната, към която искате да приложите метода.

Нека да разгледаме едно групиране с набора от данни за възрастни. Ще получите средната стойност на всички непрекъснати променливи по вид приходи, т.е. над 50k или под 50k:

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

Можете да създадете сюжет, следвайки groupby. Един от начините да го направите е да използвате графика след групирането.

За да създадете по-отличен график, ще използвате unstack() след mean(), така че да имате един и същ многостепенен индекс или да обедините стойностите по приходи под 50k и над 50k. В този случай парцелът ще има две групи вместо 14 (2*7).

Ако използвате Jupyter Ноутбук, не забравяйте да добавите %matplotlib вградено, в противен случай няма да се покаже диаграма

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

Метод на Pandas groupby() Пример

Oбобщение

  • За да импортирате набор от CSV данни в Пандите, можете да използвате обекта pd.read_csv().
  • Методът groupby() може да ви помогне да обобщите данните по групи.
  • Можете също да групирате по няколко колони. Например, можете да получите максимална капиталова печалба според вида на домакинството и семейното положение.

Обобщете тази публикация с: