Αυτό το άρθρο δημοσιεύτηκε ως μέρος του Data Science Blogathon.
Εισαγωγή
Κάθε μέρα παράγονται 2,5 εκατομμύριο byte δεδομένων! Σκεφτείτε πόσα μπορούμε να συμπεράνουμε από αυτό και τι συμπεράσματα μπορούμε να βγάλουμε. Περίμενε! Αλλά, πώς αντιμετωπίζουμε έναν τόσο τεράστιο όγκο δεδομένων;
Τι ακριβώς είναι όμως το Pandas και γιατί πρέπει να το χρησιμοποιούμε;
Το Pandas είναι μια βιβλιοθήκη Python που χρησιμοποιείται για εργασία με μεγάλες ποσότητες δεδομένων σε διάφορες μορφές, όπως αρχεία CSV, αρχεία TSV, φύλλα Excel και ούτω καθεξής. Διαθέτει λειτουργίες για την ανάλυση, τον καθαρισμό, την εξερεύνηση και την τροποποίηση δεδομένων. Τα Panda μπορούν να χρησιμοποιηθούν για διάφορους σκοπούς, συμπεριλαμβανομένων των εξής:
Τα δεδομένα του πραγματικού κόσμου δεν είναι ποτέ τέλεια και απαιτούν πολλή δουλειά. η βιβλιοθήκη Pandas κάνει αυτή την εργασία ευκολότερη και ταχύτερη, καθιστώντας τα σύνολα δεδομένων πιο σχετικά και πιο καθαρά.
Διαθέτει ένα ισχυρό σύνολο χαρακτηριστικών που μπορείτε να εφαρμόσετε στα δεδομένα σας για να τα προσαρμόσετε, να τα επεξεργαστείτε και να τα περιστρέψετε σύμφωνα με τις προτιμήσεις σας. Αυτό κάνει πολύ πιο εύκολο να αξιοποιήσετε στο έπακρο τα δεδομένα σας.
Σας επιτρέπει επίσης να αναπαραστήσετε δεδομένα με πολύ απλοποιημένο τρόπο. Αυτό βοηθά στην ανάλυση δεδομένων και στην ικανότητα .
Αυτά είναι μερικά μόνο από τα πολλά οφέλη της βιβλιοθήκης Pandas. Λοιπόν, ας εμβαθύνουμε σε αυτή τη βιβλιοθήκη και ας ζήσουμε όλα τα οφέλη που αναφέρονται! Ακούγεται ενδιαφέρον, δεν νομίζετε; Η μάθηση για τη Βιβλιοθήκη Pandas θα σας κεντρίσει το ενδιαφέρον.😁
Εγκατάσταση Pandas
Για να μάθετε για τη βιβλιοθήκη Pandas, πρέπει πρώτα να την εγκαταστήσετε στο σύστημά σας. Για να το κάνετε αυτό, εγκαταστήστε το Anaconda και, αφού εγκατασταθεί, εισαγάγετε τον ακόλουθο κωδικό στη γραμμή εντολών του Anaconda.
conda install pandas
Τώρα που εγκαταστήσαμε τα Panda στο σύστημά μας, ας δούμε τις δομές δεδομένων που περιέχει.
Δομές δεδομένων στα Pandas
Η βιβλιοθήκη Pandas ασχολείται με τις ακόλουθες δομές δεδομένων:
Πλαίσιο δεδομένων Pandas:
Όποτε υπάρχει ένα σύνολο δεδομένων με τουλάχιστον δύο στήλες και οποιονδήποτε αριθμό εγγραφών (γραμμών), τότε είναι γνωστό ως Πλαίσιο δεδομένων.
Σειρά Pandas:
Όποτε υπάρχει ένα σύνολο δεδομένων με μία μόνο στήλη με οποιονδήποτε αριθμό εγγραφών (γραμμών), τότε είναι γνωστό ως α Σειρά.
ΕΙΚΟΝΑ 1
Εισαγωγή The Pandas Library
Πριν μάθετε και χρησιμοποιήσετε τις λειτουργίες των Pandas, είναι απαραίτητο να εισαγάγετε πρώτα τη βιβλιοθήκη Pandas libraryPandas. Το κάνουμε γράφοντας τον ακόλουθο κώδικα στο σημειωματάριό μας Jupyter:
import pandas as pd
Σημείωση: „pd“ χρησιμοποιείται ως ψευδώνυμο, ώστε το πακέτο Pandas να μπορεί να αναφέρεται ως „pd“ αντί «Πάντα».
Τώρα που έχουμε εγκαταστήσει τα Pandas και τα εισαγάγαμε επίσης στο σημειωματάριό μας Jupyter, μπορούμε τώρα να εξερευνήσουμε τις διάφορες λειτουργίες των Panda.
Εισαγωγή δεδομένων
Πριν εργαστούμε σε δεδομένα, πρέπει πρώτα να τα εισαγάγουμε. Η βιβλιοθήκη Pandas έχει μια ποικιλία εντολών για την αντιμετώπιση διαφορετικών μορφών δεδομένων. Θα μάθουμε για μια τέτοια εντολή που ασχολείται με αρχεία CSV.
1. read_csv()
ο pd.read_csv() Η εντολή χρησιμοποιείται για την ανάγνωση ενός αρχείου CSV στο πλαίσιο δεδομένων.
Κωδικός Python:
Το σύνολο δεδομένων που χρησιμοποιείται είναι Αυτό.
Προβολή/Επιθεώρηση δεδομένων με Pandas
Πριν εργαστείτε με τα δεδομένα σας, είναι απαραίτητο να γνωρίζετε σωστά τα δεδομένα σας. Τα πάντα σας βοηθούν να το κάνετε:
1. κεφάλι() και ουρά()
Η παραπάνω έξοδος δεν είναι πολύ ενδιαφέρουσα για παρακολούθηση. Ας προσπαθήσουμε να δούμε μόνο τις πρώτες ή τις τελευταίες εγγραφές του συνόλου δεδομένων μας. Μπορούμε να το κάνουμε χρησιμοποιώντας τις ακόλουθες εντολές Pandas.
ο df.head() Η εντολή μας βοηθά να προβάλουμε τις κορυφαίες 5 εγγραφές (προεπιλεγμένη τιμή) του συνόλου δεδομένων μας. Εάν θέλετε να δείτε περισσότερα από 5, μπορείτε να το κάνετε πληκτρολογώντας – df.head(n) όπου n είναι ο αριθμός των εγγραφών που θέλετε να προβάλετε.
df.head()
ο df.tail() Η εντολή μας βοηθά να δούμε τις τελευταίες 5 εγγραφές (προεπιλεγμένη τιμή) του συνόλου δεδομένων μας. Εάν θέλετε να δείτε περισσότερα από 5, μπορείτε να το κάνετε πληκτρολογώντας – df.tail(n) όπου n είναι ο αριθμός των εγγραφών που θέλετε να προβάλετε.
df.tail()
2. σχήμα
ο δφ.σχήμα Η εντολή σάς παρέχει τον αριθμό των γραμμών και στηλών στο σύνολο δεδομένων σας.
df.shape()
3. πληροφορίες()
ο df.info() Η εντολή εκτυπώνει τις πληροφορίες σχετικά με το σύνολο δεδομένων μας, συμπεριλαμβανομένων στηλών, τύπων δεδομένων στηλών, μη μηδενικών τιμών και χρήσης μνήμης.
df.info()
4. περιγραφή ()
ο df.describe() Η εντολή υπολογίζει μια σύνοψη στατιστικών για τις στήλες του πλαισίου δεδομένων. Αυτή η συνάρτηση επιστρέφει τις τιμές μέτρησης, μέσης τιμής, τυπικής απόκλισης και διατεταρτημορίου εύρους (IQR).
df.describe()
5. nunique()
ο df.nunique Η εντολή επιστρέφει τον αριθμό των μοναδικών καταχωρήσεων σε κάθε στήλη.
df.nunique()
Επιλογή Δεδομένων
Συχνά δεν θέλετε να εργαστείτε μόνο με ένα υποσύνολο ολόκληρου του συνόλου δεδομένων. Σε τέτοιες περιπτώσεις, χρησιμοποιήστε τις ακόλουθες εντολές:
1. δφ[col]
ο df[col] εντολή επιστρέφει τη στήλη με την καθορισμένη ετικέτα ως σειρά.
# selecting the column 'title'
df['title']
2. δφ[[col1,col2]]
ο df[[col1, col2]] επιστρέφει στήλες ως πλαίσιο δεδομένων.
# selecting the columns 'title' and 'mediaType'
df[['title', 'mediaType']]
3. τοπ[ ]
ο df.loc[ ] Η εντολή σάς βοηθά να αποκτήσετε πρόσβαση σε μια ομάδα γραμμών και στηλών. Το loc βασίζεται σε ετικέτες, πράγμα που σημαίνει ότι πρέπει να καθορίσετε σειρές και στήλες με βάση τις ετικέτες σειρών και στηλών τους. Περιλαμβάνει τα άκρα, δηλ. df.loc[0:4] θα επιστρέψει όλες τις σειρές από 0-4 (συμπεριλαμβάνονται).
# selecting all the rows from 0-4 and the associated columns
df.loc[ :4]
# selecting all the rows and the column named 'title'
df.loc[: , 'title']
# selecting all the rows from 1-5 and the columns named 'title' and 'rating'
df.loc[1:5, ['title', 'rating'] ]
# selecting all the rows and columns with entries having rating > 4.5
df.loc[df['rating'] > 4.5]
4. iloc[ ]
ο df.iloc[ ] Η εντολή σας βοηθά επίσης να αποκτήσετε πρόσβαση σε μια ομάδα γραμμών και στηλών. Ωστόσο, σε αντίθεση με το loc, το iloc βασίζεται σε ακέραιο αριθμό θέσης, επομένως πρέπει να καθορίσετε σειρές και στήλες από τις ακέραιες τιμές θέσης τους. Εξαιρεί τα άκρα, δηλ. df.iloc[0:4] θα επιστρέψει όλες τις σειρές από 0-3 καθώς εξαιρείται η 4.
# selecting all the rows from 0-4(excluded) and the associated columns
df.iloc[0:4]
# selecting all the rows and columns
df.iloc[: , :]
# selecting all the rows and columns from 0-4(excluded)
df.iloc[0:4, 0:4]
# selecting all the rows from 0-10(excluded) and the 0th, 2nd, and 5th columns
df.iloc[ 0:10, [0, 2, 5] ]
# selecting the 3rd, 4th, and 5th rows and the 0th and 2nd columns
df.iloc[[3, 4, 5], [0, 2]]
Φιλτράρισμα, ταξινόμηση και ομαδοποίηση
Όταν εργάζεστε με σύνολα δεδομένων, θα αντιμετωπίσετε περιστάσεις κατά τις οποίες πρέπει να ταξινομήσετε, να φιλτράρετε ή ακόμα και να ομαδοποιήσετε τα δεδομένα σας για να είναι πιο κατανοητά. Οι εντολές που αναφέρονται παρακάτω θα σας βοηθήσουν σε αυτό:
1. δφ[df[col] χειριστής αριθμός]
ο df[df[col] χειριστής αριθμός] Η εντολή σάς βοηθά να φιλτράρετε εύκολα δεδομένα.
# selecting all the records where column 'watched' > 1000
df[df['watched] > 1000]
# selecting all the records where column 'watched' < 100
df[df['watched'] < 100]
# filtering out with multiple conditions.
# selecting all the records where 'watched' > 1000 and 'eps' = 10
df[(df['watched'] > 1000) & (df['eps'] == 10)]
2. sort_values()
ο df.sort_values() Η εντολή βοηθά στην ταξινόμηση των δεδομένων σας με αύξοντα ή φθίνοντα τρόπο.
# sorting the values of the column 'eps' in ascending manner(default)
df.sort_values('eps')
# sorting the values of the column 'eps' in descending manner
df.sort_values('eps' , ascending = False)
# sorting multiple columns in ascending and descending manner
# sorting the column 'eps' in ascending order and 'duration' in descending order
df.sort_values(['eps', 'duration'], ascending = [True, False])
3. Groupby()
ο df.groupby() Η εντολή βοηθά στο διαχωρισμό των δεδομένων σε ξεχωριστές ομάδες και σας επιτρέπει να εκτελείτε λειτουργίες σε αυτές τις ομάδες.
# the below code means we want to analyze our data by different "eps" values.
# the below code returns a DataFrameGroupBy object
df_groupby_eps = df.groupby('eps')
df_groupby_eps
# using the size() attribute
# it will display the group sizes [there are 7307 animes having only 1 episode and so on]
df_groupby_eps.size()
# using the get_group() attribute
# it will retrieve one of the created groups
# it will display the anime that has 500 episodes
df_groupby_eps.get_group(500.0)
# making use of aggregate functions to compute on grouped data
# applying the mean function on the grouped data
df_groupby_eps.mean()
# using the agg() function
# we can apply different aggregate functions.
# the below code will display the maximum and minimum rating of animes which are grouped by their votes.
df.groupby('votes').rating.agg(['max', 'min])
Καθαρισμός δεδομένων
Εάν οι μεγαλύτεροι σας έχουν προειδοποιήσει για το πώς ο πραγματικός κόσμος δεν είναι αυτός που πιστεύουμε ότι είναι, πώς είναι ακατάστατος και ανερμήνευτος, τότε επιτρέψτε μου να προσθέσω κάτι ακόμα σε αυτόν. Τα δεδομένα του πραγματικού κόσμου είναι ακριβώς τα ίδια: ακατάστατα και ανερμήνευτα. Πρέπει πρώτα να καθαρίσετε τα δεδομένα για να αξιοποιήσετε στο έπακρο τα δεδομένα σας και να συναγάγετε σημαντικές πληροφορίες. Και όπως ανέφερα, οι Pandas είναι ο καλύτερός σου φίλος, οπότε η καλύτερή σου φίλη τα έχει καλύψει όλα.
1. isnull()
ο df.isnull() Η εντολή ελέγχει όλες τις μηδενικές τιμές στο σύνολο δεδομένων σας.
# checking for null values
# it will return the dataset with the entries as True / False where True means that this cell has a null value and False means that this cell does not has a null value.
df.isnull()
# we can use the sum() function with isnull()
# it will return the sum of null values for each column
df.isnull().sum()
2. notnull()
ο df.notnull() η εντολή είναι ακριβώς το αντίθετο από df.isnull() εντολή. Αυτή η εντολή θα ελέγξει για τις μη μηδενικές τιμές στο σύνολο δεδομένων.
# returns the dataset with entries as True/False where True means not having a null value and False means having a null value.
df.notnull()
# using the sum() function
# it will return the sum of all the non null values for each column.
df.notnull().sum()
3. drop()
ο πτώση() εντολή ρίχνει τις σειρές/στήλες με τις καταχωρήσεις που λείπουν.
# dropping all the rows with missing values
df.dropna()
# using the "axis" parameter
# "axis = 0" (default) means Row and "axis = 1" means Column
# dropping all the columns with missing entries
df.dropna(axis = 1)
# using the "how" parameter
# how = "any" means dropping rows/columns having "ANY" missing entries.
# how = "all" means dropping rows/columns having "ALL" missing entries.
# dropping the columns having any missing values.
df.dropna(axis = 1, how = 'any')
# using the "thresh" parameter
# it specifies how many non-null values a row or column must have so as to not be dropped
# keeping only the columns with at least 14000 non-null values
df.dropna(axis = 1, thresh = 14000)
# using the "subset" parameter
# it is used for defining in which columns to look for missing values
# dropping all the rows where the "duration" column is NaN
df.dropna(subset = ['duration'])
ΣΗΜΕΙΩΣΗ : ο πτώση() και γέμισμα() εντολές επιστρέφει ένα αντίγραφο του αντικειμένου σας αντί για το πραγματικό αντικείμενο. Για να ενημερώσετε το αντικείμενό σας , πρέπει να καθορίσετε την τιμή του στη θέση παράμετρος ως True. Μην ανησυχείς, το στη θέση η παράμετρος καλύπτεται παρακάτω.
3. fill()
ο df.fillna() Η εντολή κάνει ακριβώς αυτό που υπονοεί το όνομά της: συμπληρώνει τις καταχωρήσεις που λείπουν με κάποια τιμή.
# filling the NaN values with some user specified value
df.fillna(value = "Not Specified")
χρησιμοποιώντας την παράμετρο «μέθοδος».
καθορίζει πώς θα συμπληρώσουμε τις τιμές που λείπουν
μέθοδος = ‚γέμισμα’/ ‚μπλήρωση‘
Το „fill“ σημαίνει εμπρός γέμισμα
Το „bfill“ σημαίνει backward fill
ΠΩΣ ΛΕΙΤΟΥΡΓΕΙ Η ΜΕΘΟΔΟΣ ΓΕΜΙΣΗΣ
ΠΩΣ ΛΕΙΤΟΥΡΓΕΙ Η ΜΕΘΟΔΟΣ BFILL
# executing the ffill method
df.fillna(method = 'ffill')
# executing the bfill method
df.fillna(method = 'bfill')
# using the "inplace" parameter
# The 'inplace = True' argument means that the data frame has to make changes permanent.
# If you use 'inplace = False' (default), you basically get back a copy
# This is before using 'inplace = True'
df.dropna().head(2)
df.isnull().sum()
df.fillna(value = 1).head(2)
df.isnull().sum()
# after using 'inplace = True'
df.dropna(inplace = True)
df.isnull().sum()
ΣΗΜΕΙΩΣΗ: Καθώς όλες οι σειρές με τιμές που λείπουν απορρίπτονται, δεν χρειάζεται να χρησιμοποιηθούν γέμισμα().
4. μετονομασία()
ο df.rename() εντολή μας βοηθά στην αλλαγή των ετικετών αξόνων.
# renaming the 'eps' column as 'Episodes'
df.rename(columns = {'eps' : 'Episodes'})
Ερώτηση: Μπορείτε να μαντέψετε γιατί οι εγγραφές ξεκινούν από 149 αντί για 0;
Δημιουργία αντικειμένων δοκιμής
Δεν χρειάζεται απαραίτητα να χρησιμοποιείτε προϋπάρχοντα σύνολα δεδομένων. Αντίθετα, μπορείτε να δημιουργήσετε τα δικά σας δοκιμαστικά αντικείμενα και να εκτελέσετε μια σειρά από εντολές για να εξερευνήσετε περαιτέρω αυτήν τη βιβλιοθήκη. Καλύπτεστε σε αυτό από τις ακόλουθες εντολές:
1. DataFrame() & Series()
ο pd.DataFrame() εντολή σας βοηθά να δημιουργήσετε το δικό σας πλαίσιο δεδομένων με ευκολία.
ο pd.Series() εντολή σας βοηθά να δημιουργήσετε τη δική σας σειρά με ευκολία.
Η ικανότητα των Pandas να εφαρμόζουν στατιστικές τεχνικές στα δεδομένα είναι ευεργετική, καθώς βελτιώνει την ανάλυση και την ερμηνεία των δεδομένων. Οι εντολές που αναφέρονται παρακάτω μας βοηθούν να το πετύχουμε αυτό:
1. mean() & median()
ο df.mean() και df.median() Οι εντολές επιστρέφουν τη μέση και τη διάμεσο (αντίστοιχα) όλων των στηλών.
df.mean()
df.median()
2. corr()
ο df.corr() εντολή επιστρέφει τη συσχέτιση μεταξύ των στηλών.
# correlation can be defined as a relationship between variables.
# it lies between -1 and 1 (inclusive of both the values)
df.corr()
3. std()
ο df.std() Η εντολή επιστρέφει την τυπική απόκλιση όλων των στηλών.
df.std()
4. max() & min()
ο df.max() και df.min() Οι εντολές επιστρέφουν την υψηλότερη και τη χαμηλότερη τιμή σε κάθε στήλη.
df.max()
df.min()
Συνδυασμός πλαισίων δεδομένων
Ο συνδυασμός συνόλων δεδομένων είναι απαραίτητος όταν έχετε πολλά σύνολα δεδομένων αλλά θέλετε να μελετήσετε όλα τα δεδομένα τους ταυτόχρονα. Οι εντολές που αναφέρονται παρακάτω μπορεί να είναι χρήσιμες σε αυτό το σενάριο:
1. concat()
ο pd.concat() Η εντολή σάς επιτρέπει να συνδυάσετε δεδομένα σε γραμμές ή στήλες.
# using the "axis" parameter
pd.concat([df2,df3,df4], axis = 1)
συμπέρασμα
Το Pandas είναι μια από τις πιο χρήσιμες και φιλικές προς το χρήστη βιβλιοθήκες επιστήμης δεδομένων και μηχανικής εκμάθησης. Βοηθά στην απόκτηση ουσιαστικών πληροφοριών από διάφορους τύπους συνόλων δεδομένων. Διαθέτει εξαιρετικά χαρακτηριστικά που, εάν κατανοηθούν σωστά, μπορούν να είναι χρήσιμα κατά την εργασία με δεδομένα και να επιταχύνουν τη διαδικασία. Μην σταματήσετε να μαθαίνετε για αυτήν την απίστευτη βιβλιοθήκη εδώ γιατί η βιβλιοθήκη Pandas έχει πολλές ακόμα ενδιαφέρουσες λειτουργίες με τις οποίες μπορείτε να συμπεράνετε πληροφορίες από δεδομένα σε λίγα λεπτά!
Σας ευχαριστούμε που διαβάσατε!😊
Τα μέσα που εμφανίζονται σε αυτό το άρθρο δεν ανήκουν στο Analytics Vidhya και χρησιμοποιούνται κατά την κρίση του συγγραφέα.