Importuj dane CSV za pomocą Pandas.read_csv ()

Spisie treści:

Anonim

W tym samouczku dowiesz się:

  • Importuj CSV
  • Grupuj według

Importuj CSV

Podczas samouczka TensorFlow użyjesz zestawu danych dla dorosłych. Jest często używany w zadaniach klasyfikacyjnych. Jest dostępny pod tym adresem URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data

Dane są przechowywane w formacie CSV. Ten zbiór danych zawiera osiem zmiennych kategorialnych:

Ten zbiór danych zawiera osiem zmiennych kategorialnych:

  • klasa robocza
  • Edukacja
  • małżeński
  • zawód
  • związek
  • wyścig
  • seks
  • ojczyźnie

ponadto sześć zmiennych ciągłych:

  • wiek
  • fnlwgt
  • edukacja_num
  • zysk kapitałowy
  • capital_loss

hours_week

Aby zaimportować zestaw danych CSV, możesz użyć obiektu pd.read_csv (). Podstawowym argumentem wewnątrz jest:

Składnia:

pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
  • filepath_or_buffer: ścieżka lub adres URL z danymi
  • sep = ',': Zdefiniuj separator, który ma być używany
  • `names = None`: Nazwij kolumny. Jeśli zbiór danych ma dziesięć kolumn, musisz przekazać dziesięć nazw
  • `index_col = None`: Jeśli tak, pierwsza kolumna jest używana jako indeks wiersza
  • `skipinitialspace = False`: Pomiń spacje po separatorze.

Aby uzyskać więcej informacji na temat readcsv (), zapoznaj się z oficjalną dokumentacją

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

Rozważmy następujący przykład

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

Wynik:

(32561, 15)

Grupuj według

Łatwym sposobem wyświetlenia danych jest użycie metody grupowania. Ta metoda może pomóc w podsumowaniu danych według grup. Poniżej znajduje się lista metod dostępnych w Groupby:

  • liczyć: liczyć
  • min: min
  • max: max
  • znaczy: wredny
  • mediana: mediana
  • odchylenie standardowe: sdt
  • itp

Wewnątrz groupby () możesz użyć kolumny, w której chcesz zastosować metodę.

Przyjrzyjmy się pojedynczemu grupowaniu ze zbiorem danych dla dorosłych. Otrzymasz średnią wszystkich zmiennych ciągłych według rodzaju przychodu, tj. Powyżej 50 tys. Lub poniżej 50 tys

df_train.groupby(['label']).mean() 
wiek fnlwgt edukacja_num zysk kapitałowy capital_loss hours_week
etykieta
<= 50 tys 36,783738 190340.86517 9.595065 148,752468 53.142921 38,840210
> 50 tys 44.249841 188005,00000 11,611657 4006.142456 195,001530 45.473026

Możesz uzyskać minimalny wiek według rodzaju gospodarstwa domowego

df_train.groupby (['etykieta']) ['wiek']. min ()

label<=50K 17>50K 19Name: age, dtype: int64 

Możesz także grupować według wielu kolumn. Na przykład możesz uzyskać maksymalny zysk kapitałowy zgodnie z typem gospodarstwa domowego i stanem cywilnym.

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

Możesz utworzyć wykres po grupowaniu. Jednym ze sposobów jest użycie wykresu po zgrupowaniu.

Aby stworzyć lepszy wykres, użyjesz unstack () po średniej (), aby mieć ten sam wielopoziomowy indeks, lub połączysz wartości przychodami niższymi niż 50 tys. I wyższymi niż 50 tys. W tym przypadku wykres będzie miał dwie grupy zamiast 14 (2 * 7).

Jeśli używasz Jupyter Notebook, pamiętaj, aby dodać% matplotlib w wierszu, w przeciwnym razie żaden wykres nie zostanie wyświetlony

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