In diesem Tutorial lernen Sie:
- CSV importieren
- Gruppiere nach
CSV importieren
Während des TensorFlow-Tutorials verwenden Sie den Datensatz für Erwachsene. Es wird häufig bei Klassifizierungsaufgaben verwendet. Es ist unter dieser URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data verfügbar
Die Daten werden in einem CSV-Format gespeichert. Dieser Datensatz enthält acht kategoriale Variablen:
Dieser Datensatz enthält acht kategoriale Variablen:
- Arbeiterklasse
- Bildung
- ehelich
- Besetzung
- Beziehung
- Rennen
- Sex
- Heimatland
Darüber hinaus sechs kontinuierliche Variablen:
- Alter
- fnlwgt
- education_num
- Wertzuwachs
- Kapitalverlust
Stunden_Woche
Zum Importieren eines CSV-Datasets können Sie das Objekt pd.read_csv () verwenden. Das grundlegende Argument darin ist:
Syntax:
pandas.read_csv(filepath_or_buffer,sep=', ',`names=None`,`index_col=None`,`skipinitialspace=False`)
- filepath_or_buffer: Pfad oder URL mit den Daten
- sep = ',': Definieren Sie das zu verwendende Trennzeichen
- `names = None`: Benennen Sie die Spalten. Wenn das Dataset zehn Spalten enthält, müssen Sie zehn Namen übergeben
- `index_col = None`: Wenn ja, wird die erste Spalte als Zeilenindex verwendet
- `skipinitialspace = False`: Leerzeichen nach dem Trennzeichen überspringen.
Weitere Informationen zu readcsv () finden Sie in der offiziellen Dokumentation
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html.
Betrachten Sie das folgende Beispiel
## 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
Ausgabe:
(32561, 15)
Gruppiere nach
Eine einfache Möglichkeit, die Daten anzuzeigen, ist die Verwendung der groupby-Methode. Diese Methode kann Ihnen helfen, die Daten nach Gruppen zusammenzufassen. Unten finden Sie eine Liste der mit groupby verfügbaren Methoden:
- count: count
- min: min
- max: max
- Mittelwert: Mittelwert
- Median: Median
- Standardabweichung: sdt
- usw
In groupby () können Sie die Spalte verwenden, in der Sie die Methode anwenden möchten.
Schauen wir uns eine einzelne Gruppierung mit dem Datensatz für Erwachsene an. Sie erhalten den Mittelwert aller kontinuierlichen Variablen nach Umsatzart, dh über 50.000 oder unter 50.000
df_train.groupby(['label']).mean()
Alter | fnlwgt | education_num | Wertzuwachs | Kapitalverlust | Stunden_Woche | |
Etikette | ||||||
<= 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 |
Sie können das Mindestalter nach Haushaltstyp ermitteln
df_train.groupby (['label']) ['age']. min ()
label<=50K 17>50K 19Name: age, dtype: int64
Sie können auch nach mehreren Spalten gruppieren. Zum Beispiel können Sie den maximalen Kapitalgewinn je nach Haushaltstyp und Familienstand erzielen.
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
Sie können nach groupby ein Diagramm erstellen. Eine Möglichkeit besteht darin, nach der Gruppierung ein Diagramm zu verwenden.
Um ein besseres Diagramm zu erstellen, verwenden Sie unstack () nach mean (), sodass Sie denselben mehrstufigen Index haben, oder Sie verbinden die Werte mit Einnahmen von weniger als 50.000 und mehr als 50.000. In diesem Fall hat der Plot zwei Gruppen anstelle von 14 (2 * 7).
Wenn Sie Jupyter Notebook verwenden, stellen Sie sicher, dass Sie% matplotlib inline hinzufügen. Andernfalls wird kein Plot angezeigt
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot