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 με τα δεδομένα
  • σεπ=', ': Ορίστε τον οριοθέτη προς χρήση
  • `names=None`: Ονομάστε τις στήλες. Εάν το σύνολο δεδομένων έχει δέκα στήλες, πρέπει να περάσετε δέκα ονόματα
  • `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(), μπορείτε να χρησιμοποιήσετε τη στήλη που θέλετε να εφαρμόσετε τη μέθοδο.

Ας ρίξουμε μια ματιά σε μια ενιαία ομαδοποίηση με το σύνολο δεδομένων για ενήλικες. Θα λάβετε τον μέσο όρο όλων των συνεχών μεταβλητών ανά τύπο εσόδων, π.χ. πάνω από 50 χιλιάδες ή κάτω από 50 χιλιάδες:

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     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 inline, διαφορετικά δεν θα εμφανιστεί κανένα σχέδιο

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

Μέθοδος Pandas groupby() Παράδειγμα

Σύνοψη

  • Για να εισαγάγετε ένα σύνολο δεδομένων CSV Πάντα, μπορείτε να χρησιμοποιήσετε το αντικείμενο pd.read_csv().
  • Η μέθοδος groupby() μπορεί να σας βοηθήσει να συνοψίσετε τα δεδομένα ανά ομάδα.
  • Μπορείτε επίσης να ομαδοποιήσετε κατά πολλές στήλες. Για παράδειγμα, μπορείτε να λάβετε τη μέγιστη υπεραξία ανάλογα με τον τύπο του νοικοκυριού και την οικογενειακή κατάσταση.