Python Pandas Tutorial: DataFrame, Date Range, Use of Pandas
Τι είναι το Pandas Python?
Πάντα είναι μια βιβλιοθήκη ανοιχτού κώδικα που σας επιτρέπει να κάνετε χειρισμό και ανάλυση δεδομένων Python. Πάντα Python Η βιβλιοθήκη προσφέρει χειρισμό δεδομένων και λειτουργίες δεδομένων για αριθμητικούς πίνακες και χρονοσειρές. Τα Panda παρέχουν έναν εύκολο τρόπο δημιουργίας, χειρισμού και λογομαχίας των δεδομένων. Είναι χτισμένο πάνω στο NumPy, σημαίνει ότι χρειάζεται NumPy για να λειτουργήσει.
Γιατί να χρησιμοποιήσετε Pandas;
Οι επιστήμονες δεδομένων κάνουν χρήση των Pandas στο Python για τα ακόλουθα πλεονεκτήματά του:
- Χειρίζεται εύκολα τα δεδομένα που λείπουν
- Χρησιμοποιεί Σειρά για μονοδιάστατη δομή δεδομένων και DataFrame για πολυδιάστατη δομή δεδομένων
- Παρέχει έναν αποτελεσματικό τρόπο κοπής των δεδομένων
- Παρέχει έναν ευέλικτο τρόπο συγχώνευσης, συνένωσης ή αναμόρφωσης των δεδομένων
- Περιλαμβάνει ένα ισχυρό εργαλείο χρονοσειρών για εργασία
Με λίγα λόγια, το Pandas είναι μια χρήσιμη βιβλιοθήκη ανάλυση δεδομένων. Μπορεί να χρησιμοποιηθεί για την εκτέλεση επεξεργασίας και ανάλυσης δεδομένων. Τα Panda παρέχουν ισχυρές και εύχρηστες δομές δεδομένων, καθώς και τα μέσα για γρήγορη εκτέλεση λειτουργιών σε αυτές τις δομές.
Πώς να εγκαταστήσετε τα Pandas;
Τώρα σε αυτό Python Οδηγός Pandas, θα μάθουμε πώς να εγκαταστήσουμε τα Pandas Python.
Για να εγκαταστήσετε τη βιβλιοθήκη Pandas, ανατρέξτε στον οδηγό μας Πώς να εγκαταστήσετε το TensorFlow. Το Pandas είναι εγκατεστημένο από προεπιλογή. Σε απομακρυσμένη περίπτωση, τα πάντα δεν είναι εγκατεστημένα-
Μπορείτε να εγκαταστήσετε τα Panda χρησιμοποιώντας:
- Anaconda: conda install -c anaconda panda
- In Jupyter Σημειωματάριο :
import sys !conda install --yes --prefix {sys.prefix} pandas
Τι είναι το Pandas DataFrame;
Pandas DataFrame είναι ένας δισδιάστατος πίνακας με επισημασμένη δομή δεδομένων που έχει διαφορετικούς τύπους στηλών. Το DataFrame είναι ένας τυπικός τρόπος αποθήκευσης δεδομένων σε μορφή πίνακα, με σειρές για την αποθήκευση των πληροφοριών και στήλες για την ονομασία των πληροφοριών. Για παράδειγμα, η τιμή μπορεί να είναι το όνομα μιας στήλης και το 2,3,4 μπορεί να είναι οι τιμές τιμής.
Το Data Frame είναι γνωστό από τους στατιστικολόγους και άλλους επαγγελματίες δεδομένων.
Κάτω από μια εικόνα ενός πλαισίου δεδομένων Panda:
Τι είναι μια Σειρά;
Μια σειρά είναι μια μονοδιάστατη δομή δεδομένων. Μπορεί να έχει οποιαδήποτε δομή δεδομένων όπως ακέραιος, float και συμβολοσειρά. Είναι χρήσιμο όταν θέλετε να εκτελέσετε υπολογισμούς ή να επιστρέψετε έναν μονοδιάστατο πίνακα. Μια σειρά, εξ ορισμού, δεν μπορεί να έχει πολλές στήλες. Για την τελευταία περίπτωση, χρησιμοποιήστε τη δομή του πλαισίου δεδομένων.
Python Η σειρά Pandas έχει τις ακόλουθες παραμέτρους:
- Δεδομένα: μπορεί να είναι λίστα, λεξικό ή βαθμωτή τιμή
pd.Series([1., 2., 3.])
0 1.0 1 2.0 2 3.0 dtype: float64
Μπορείτε να προσθέσετε το ευρετήριο με ευρετήριο. Βοηθά να ονομάσουμε τις σειρές. Το μήκος πρέπει να είναι ίσο με το μέγεθος της στήλης
pd.Series([1., 2., 3.], index=['a', 'b', 'c'])
Παρακάτω, δημιουργείτε μια σειρά Pandas με μια τιμή που λείπει για τις τρίτες σειρές. Σημείωση, λείπουν τιμές Python σημειώνονται «NaN». Μπορείτε να χρησιμοποιήσετε το numpy για να δημιουργήσετε τεχνητά την τιμή που λείπει: np.nan
pd.Series([1,2,np.nan])
Παραγωγή
0 1.0 1 2.0 2 NaN dtype: float64
Δημιουργήστε Pandas DataFrame
Τώρα σε αυτό το σεμινάριο Pandas DataFrame, θα μάθουμε πώς να δημιουργούμε Python Πλαίσιο δεδομένων Pandas:
Μπορείτε να μετατρέψετε έναν πίνακα numpy σε πλαίσιο δεδομένων pandas με το pd.Data frame(). Το αντίθετο είναι επίσης πιθανό. Για να μετατρέψετε ένα Pandas Data Frame σε πίνακα, μπορείτε να χρησιμοποιήσετε το np.array()
## Numpy to pandas import numpy as np h = [[1,2],[3,4]] df_h = pd.DataFrame(h) print('Data Frame:', df_h) ## Pandas to numpy df_h_n = np.array(df_h) print('Numpy array:', df_h_n) Data Frame: 0 1 0 1 2 1 3 4 Numpy array: [[1 2] [3 4]]
Μπορείτε επίσης να χρησιμοποιήσετε ένα λεξικό για να δημιουργήσετε ένα πλαίσιο δεδομένων Pandas.
dic = {'Name': ["John", "Smith"], 'Age': [30, 40]} pd.DataFrame(data=dic)
Ηλικία | Όνομα | |
---|---|---|
0 | 30 | Γιάννης |
1 | 40 | Σιδεράς |
Δεδομένα Pandas Range
Τα Panda έχουν ένα βολικό API για να δημιουργήσουν ένα εύρος ημερομηνιών. Ας μάθουμε με Python Παραδείγματα Panda:
pd.data_range(ημερομηνία, περίοδος, συχνότητα):
- Η πρώτη παράμετρος είναι η ημερομηνία έναρξης
- Η δεύτερη παράμετρος είναι ο αριθμός των περιόδων (προαιρετικό εάν έχει καθοριστεί η ημερομηνία λήξης)
- Η τελευταία παράμετρος είναι η συχνότητα: ημέρα: 'D', μήνας: 'M' και έτος: 'Y'.
## Create date # Days dates_d = pd.date_range('20300101', periods=6, freq='D') print('Day:', dates_d)
Παραγωγή
Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months dates_m = pd.date_range('20300101', periods=6, freq='M') print('Month:', dates_m)
Παραγωγή
Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')
Επιθεώρηση δεδομένων
Μπορείτε να ελέγξετε την κεφαλή ή την ουρά του συνόλου δεδομένων με head(), ή tail() πριν από το όνομα του πλαισίου δεδομένων του panda, όπως φαίνεται στο παρακάτω παράδειγμα Panda:
Βήμα 1) Δημιουργήστε μια τυχαία ακολουθία με πολλοί. Η ακολουθία έχει 4 στήλες και 6 σειρές
random = np.random.randn(6,4)
Βήμα 2) Στη συνέχεια, δημιουργείτε ένα πλαίσιο δεδομένων χρησιμοποιώντας panda.
Χρησιμοποιήστε dates_m ως ευρετήριο για το πλαίσιο δεδομένων. Σημαίνει ότι σε κάθε σειρά θα δοθεί ένα «όνομα» ή ένα ευρετήριο, που αντιστοιχεί σε μια ημερομηνία.
Τέλος, δίνετε ένα όνομα στις 4 στήλες με τις στήλες ορισμάτων
# Create data with date df = pd.DataFrame(random, index=dates_m, columns=list('ABCD'))
Βήμα 3) Χρήση της λειτουργίας κεφαλής
df.head(3)
A | B | C | D | |
---|---|---|---|---|
2030-01-31 | 1.139433 | 1.318510 | -0.181334 | 1.615822 |
2030-02-28 | -0.081995 | -0.063582 | 0.857751 | -0.527374 |
2030-03-31 | -0.519179 | 0.080984 | -1.454334 | 1.314947 |
Βήμα 4) Χρήση της λειτουργίας ουράς
df.tail(3)
A | B | C | D | |
---|---|---|---|---|
2030-04-30 | -0.685448 | -0.011736 | 0.622172 | 0.104993 |
2030-05-31 | -0.935888 | -0.731787 | -0.558729 | 0.768774 |
2030-06-30 | 1.096981 | 0.949180 | -0.196901 | -0.471556 |
Βήμα 5) Μια εξαιρετική πρακτική για να πάρετε μια ιδέα σχετικά με τα δεδομένα είναι να χρησιμοποιήσετε το describe(). Παρέχει το πλήθος, το μέσο όρο, το std, το min, το max και το εκατοστημόριο του συνόλου δεδομένων.
df.describe()
A | B | C | D | |
---|---|---|---|---|
μετράνε | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
εννοώ | 0.002317 | 0.256928 | -0.151896 | 0.467601 |
std | 0.908145 | 0.746939 | 0.834664 | 0.908910 |
πρακτικά | -0.935888 | -0.731787 | -1.454334 | -0.527374 |
25% | -0.643880 | -0.050621 | -0.468272 | -0.327419 |
50% | -0.300587 | 0.034624 | -0.189118 | 0.436883 |
75% | 0.802237 | 0.732131 | 0.421296 | 1.178404 |
max | 1.139433 | 1.318510 | 0.857751 | 1.615822 |
Slice Data
Το τελευταίο σημείο αυτού Python Το σεμινάριο Pandas αφορά τον τρόπο κοπής ενός πλαισίου δεδομένων pandas.
Μπορείτε να χρησιμοποιήσετε το όνομα της στήλης για να εξαγάγετε δεδομένα σε μια συγκεκριμένη στήλη όπως φαίνεται στο παρακάτω παράδειγμα Panda:
## Slice ### Using name df['A'] 2030-01-31 -0.168655 2030-02-28 0.689585 2030-03-31 0.767534 2030-04-30 0.557299 2030-05-31 -1.547836 2030-06-30 0.511551 Freq: M, Name: A, dtype: float64
Για να επιλέξετε πολλές στήλες, πρέπει να χρησιμοποιήσετε δύο φορές την αγκύλη, [[..,..]]
Το πρώτο ζεύγος αγκύλης σημαίνει ότι θέλετε να επιλέξετε στήλες, το δεύτερο ζευγάρια αγκύλων λέει ποιες στήλες θέλετε να επιστρέψετε.
df[['A', 'B']].
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Μπορείτε να κόψετε τις σειρές με:
Ο παρακάτω κώδικας επιστρέφει τις τρεις πρώτες σειρές
### using a slice for row df[0:3]
A | B | C | D | |
---|---|---|---|---|
2030-01-31 | -0.168655 | 0.587590 | 0.572301 | -0.031827 |
2030-02-28 | 0.689585 | 0.998266 | 1.164690 | 0.475975 |
2030-03-31 | 0.767534 | -0.940617 | 0.227255 | -0.341532 |
Η συνάρτηση loc χρησιμοποιείται για την επιλογή στηλών με ονόματα. Ως συνήθως, οι τιμές πριν από το κώμα αντιπροσωπεύουν τις σειρές και μετά αναφέρονται στη στήλη. Πρέπει να χρησιμοποιήσετε τις αγκύλες για να επιλέξετε περισσότερες από μία στήλες.
## Multi col df.loc[:,['A','B']]
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Υπάρχει μια άλλη μέθοδος για να επιλέξετε πολλές σειρές και στήλες στα Panda. Μπορείτε να χρησιμοποιήσετε το iloc[]. Αυτή η μέθοδος χρησιμοποιεί το ευρετήριο αντί για το όνομα των στηλών. Ο παρακάτω κώδικας επιστρέφει το ίδιο πλαίσιο δεδομένων όπως παραπάνω
df.iloc[:, :2]
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Ρίξτε μια στήλη
Μπορείτε να αποθέσετε στήλες χρησιμοποιώντας το pd.drop()
df.drop(columns=['A', 'C'])
B | D | |
---|---|---|
2030-01-31 | 0.587590 | -0.031827 |
2030-02-28 | 0.998266 | 0.475975 |
2030-03-31 | -0.940617 | -0.341532 |
2030-04-30 | 0.507350 | -0.296035 |
2030-05-31 | 1.276558 | 0.523017 |
2030-06-30 | 1.572085 | -0.594772 |
Αληλουχία
Μπορείτε να συνδέσετε δύο DataFrame στα Pandas. Μπορείτε να χρησιμοποιήσετε το pd.concat()
Πρώτα απ 'όλα, πρέπει να δημιουργήσετε δύο DataFrames. Μέχρι στιγμής όλα καλά, είστε ήδη εξοικειωμένοι με τη δημιουργία πλαισίων δεδομένων
import numpy as np df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'], 'Age': ['25', '30', '50']}, index=[0, 1, 2]) df2 = pd.DataFrame({'name': ['Adam', 'Smith' ], 'Age': ['26', '11']}, index=[3, 4])
Τέλος, συνενώνετε τα δύο DataFrame
df_concat = pd.concat([df1,df2]) df_concat
Ηλικία | όνομα | |
---|---|---|
0 | 25 | Γιάννης |
1 | 30 | Σιδεράς |
2 | 50 | Παύλος |
3 | 26 | Αδάμ |
4 | 11 | Σιδεράς |
Drop_duplicates
Εάν ένα σύνολο δεδομένων μπορεί να περιέχει διπλότυπη χρήση πληροφοριών, το «drop_duplicates» είναι ένας εύκολος αποκλεισμός διπλών σειρών. Μπορείτε να δείτε ότι το "df_concat" έχει μια διπλή παρατήρηση, το "Smith" εμφανίζεται δύο φορές στη στήλη "όνομα".
df_concat.drop_duplicates('name')
Ηλικία | όνομα | |
---|---|---|
0 | 25 | Γιάννης |
1 | 30 | Σιδεράς |
2 | 50 | Παύλος |
3 | 26 | Αδάμ |
Ταξινόμηση τιμών
Μπορείτε να ταξινομήσετε την τιμή με sort_values
df_concat.sort_values('Age')
Ηλικία | όνομα | |
---|---|---|
4 | 11 | Σιδεράς |
0 | 25 | Γιάννης |
3 | 26 | Αδάμ |
1 | 30 | Σιδεράς |
2 | 50 | Παύλος |
Μετονομασία: αλλαγή ευρετηρίου
Μπορείτε να χρησιμοποιήσετε τη μετονομασία για να μετονομάσετε μια στήλη στο Pandas. Η πρώτη τιμή είναι το όνομα της τρέχουσας στήλης και η δεύτερη τιμή είναι το όνομα της νέας στήλης.
df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Age_ppl | Επώνυμο | |
---|---|---|
0 | 25 | Γιάννης |
1 | 30 | Σιδεράς |
2 | 50 | Παύλος |
3 | 26 | Αδάμ |
4 | 11 | Σιδεράς |
Περίληψη
Παρακάτω είναι μια σύνοψη της πιο χρήσιμης μεθόδου για την επιστήμη δεδομένων με τα Panda
εισαγωγή δεδομένων | read_csv |
---|---|
δημιουργία σειρών | Σειρές |
Δημιουργία Dataframe | Πλαίσιο δεδομένων |
Δημιουργία εύρους ημερομηνιών | DATE_RANGE |
κεφαλή επιστροφής | κεφάλι |
ουρά επιστροφής | ουρά |
Περιγράφω | περιγράφουν |
φέτα χρησιμοποιώντας το όνομα | όνομα δεδομένων['όνομα στήλης'] |
Κόψτε σε φέτες χρησιμοποιώντας σειρές | όνομα_δεδομένων[0:5] |