Εισαγωγή δεδομένων CSV χρησιμοποιώντας το Pandas.read_csv ()

Πίνακας περιεχομένων:

Anonim

Σε αυτό το σεμινάριο, θα μάθετε:

  • Εισαγωγή 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