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