Σε αυτό το σεμινάριο, θα μάθετε:
- Εισαγωγή CSV
- Συγκρότημα
Εισαγωγή CSV
Κατά τη διάρκεια του προγράμματος εκμάθησης TensorFlow, θα χρησιμοποιήσετε το σύνολο δεδομένων για ενήλικες. Χρησιμοποιείται συχνά με εργασία ταξινόμησης. Είναι διαθέσιμο σε αυτήν τη διεύθυνση URL https://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data
Τα δεδομένα αποθηκεύονται σε μορφή CSV. Αυτό το σύνολο δεδομένων περιλαμβάνει οκτώ κατηγορηματικές μεταβλητές:
Αυτό το σύνολο δεδομένων περιλαμβάνει οκτώ κατηγορηματικές μεταβλητές:
- τάξη εργασίας
- εκπαίδευση
- συζυγικός
- κατοχή
- σχέση
- αγώνας
- φύλο
- χώρα ιθαγένειας
Επιπλέον, έξι συνεχείς μεταβλητές:
- ηλικία
- fnlwgt
- εκπαίδευση_αριθ
- κεφαλαιακό κέρδος
- απώλεια κεφαλαίου
ώρες_ εβδομάδες
Για να εισαγάγετε ένα σύνολο δεδομένων 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:
- μέτρηση: μέτρηση
- ελάχ. ελάχ
- μέγιστο: μέγ
- μέση: μέση
- διάμεσος: διάμεσος
- τυπική απόκλιση: sdt
- και τα λοιπά
Μέσα στο groupby (), μπορείτε να χρησιμοποιήσετε τη στήλη που θέλετε να εφαρμόσετε τη μέθοδο.
Ας ρίξουμε μια ματιά σε μια ομαδοποίηση με το σύνολο δεδομένων για ενήλικες. Θα λάβετε το μέσο όρο όλων των συνεχών μεταβλητών ανά τύπο εσόδων, δηλαδή πάνω από 50k ή κάτω από 50k
df_train.groupby(['label']).mean()
ηλικία | fnlwgt | εκπαίδευση_αριθ | κεφαλαιακό κέρδος | απώλεια κεφαλαίου | ώρες_ εβδομάδες | |
επιγραφή | ||||||
<= 50 χιλ | 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
Μπορείτε να δημιουργήσετε ένα οικόπεδο ακολουθώντας το groupby. Ένας τρόπος να το κάνετε είναι να χρησιμοποιήσετε ένα οικόπεδο μετά την ομαδοποίηση.
Για να δημιουργήσετε μια πιο εξαιρετική πλοκή, θα χρησιμοποιήσετε το unstack () μετά το μέσο όρο (), έτσι ώστε να έχετε τον ίδιο δείκτη πολλαπλών επιπέδων ή να ενώνετε τις τιμές με έσοδα χαμηλότερα από 50k και πάνω από 50k Σε αυτήν την περίπτωση, το οικόπεδο θα έχει δύο ομάδες αντί για 14 (2 * 7).
Εάν χρησιμοποιείτε το Jupyter Notebook, βεβαιωθείτε ότι έχετε προσθέσει το% matplotlib inline, διαφορετικά, δεν θα εμφανιστεί γραφικό
%matplotlib inlinedf_plot = df_train.groupby(['label', 'marital'])['capital_gain'].mean().unstack()df_plot