Τι είναι το Pandas fillna() και πώς χρησιμοποιείται
Η συνάρτηση Python pandas DataFrame.fillna() χρησιμοποιείται για την αντικατάσταση ελλειπουσών τιμών σε ένα DataFrame. Αυτό μπορεί να βοηθήσει στην απλοποίηση των διαδικασιών καθαρισμού δεδομένων ή να αποτελέσει ένα χρήσιμο εργαλείο κατά την εκτέλεση αναλύσεων.
Ποια είναι η σύνταξη για το pandas fillna();
Η συνάρτηση fillna() δέχεται έως και πέντε παραμέτρους και έχει την ακόλουθη δομή:
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None)pythonΣημαντικές παράμετροι για fillna()
Η συμπεριφορά της συνάρτησης DataFrame.fillna() μπορεί να ρυθμιστεί χρησιμοποιώντας διάφορες παραμέτρους:
| Παράμετρος | Περιγραφή | Προεπιλεγμένη τιμή |
|---|---|---|
value
|
Μια σκαλαρική τιμή ή ένα λεξικό (ή σειρά) για την αντικατάσταση των NaN | None
|
method
|
Καθορίζει τη μέθοδο πλήρωσης: πλήρωση προς τα εμπρός (ffill) ή πλήρωση προς τα πίσω (bfill)
|
None
|
axis
|
Καθορίζει σε ποιον άξονα θα εκτελεστεί η λειτουργία (0 ή index για σειρές, 1 ή columns για στήλες)
|
0 |
inplace
|
Εάν είναι True, οι αλλαγές γίνονται απευθείας στο αρχικό DataFrame.
|
False
|
limit
|
Ένας ακέραιος αριθμός που περιορίζει τον αριθμό των τιμών NaN που θα αντικατασταθούν. | None
|
Στις μελλοντικές εκδόσεις του Pandas, η παράμετρος methodπιθανότατα δεν θα υποστηρίζεται πλέον. Εάν αυτό συμβεί, μπορείτε να βασιστείτε στις παραμέτρους obj.ffill() ή obj.bfill(), καθώς αυτές οι συναρτήσεις έχουν το ίδιο αποτέλεσμα με την παράμετρο method.
Πώς να χρησιμοποιήσετε το Pandas DataFrame.fillna()
Η συνάρτηση Pandas fillna() μπορεί να χρησιμοποιηθεί με διάφορους τρόπους:
Αντικατάσταση τιμών NaN με μια σταθερή τιμή
Αρχικά, ας δημιουργήσουμε ένα DataFrame:
import pandas as pd
# Sample DataFrame with different values
data = {
'A': [1, 2, None, 4],
'B': [None, 2, 3, 4],
'C': [1, None, 3, 4]
}
df = pd.DataFrame(data)
print(df)pythonΤο DataFrame έχει την εξής μορφή:
A B C
0 1.0 NaN 1.0
1 2.0 2.0 NaN
2 NaN 3.0 3.0
3 4.0 4.0 4.0Στις pandas, η τιμή None στα DataFrames και Series ερμηνεύεται ως NaN.
Για να αντικαταστήσετε τις ελλείπουσες τιμές με 0, μπορείτε να χρησιμοποιήσετε τη συνάρτηση pandas fillna():
# Replacing missing values with zero
df_filled = df.fillna(0)
print(df_filled)pythonΤο αποτέλεσμα είναι ότι κάθε τιμή NaN έχει αντικατασταθεί με 0:
A B C
0 1.0 0.0 1.0
1 2.0 2.0 0.0
2 0.0 3.0 3.0
3 4.0 4.0 4.0Χρησιμοποιώντας τη μέθοδο προώθησης πλήρωσης ffill
Αν θέλετε να συμπληρώσετε τις τιμές NaN με την τιμή που προηγείται άμεσα αυτών στη στήλη όπου βρίσκονται, μπορείτε να περάσετε τη μέθοδο ffill ως παράμετρο:
# Replace all NaN values with the value that precedes them
df_ffill = df.fillna(method='ffill')
print(df_ffill)pythonΣε αυτό το παράδειγμα, οι τιμές NaN στις στήλες A και C έχουν συμπληρωθεί με τις προηγούμενες τιμές στην ίδια στήλη. Δεδομένου ότι δεν υπήρχε προηγούμενη τιμή στη στήλη B για τη σειρά 0, η τιμή NaN διατηρείται:
A B C
0 1.0 NaN 1.0
1 2.0 2.0 1.0
2 2.0 3.0 3.0
3 4.0 4.0 4.0Χρησιμοποιώντας τη μέθοδο οπισθοδρόμησης bfill για σειρές
Οι τιμές NaN μπορούν επίσης να συμπληρωθούν με διαδοχικές τιμές με βάση τη θέση τους στη σειρά. Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε τη μέθοδο bfill και να ορίσετε την παράμετρο axis σε 1:
df_bfill = df.fillna(method='bfill', axis=1)
print(df_bfill)pythonΤο αποτέλεσμα δείχνει ότι οι τιμές NaN στις σειρές 0 και 2 έχουν αντικατασταθεί από τις τιμές που ακολουθούν στην ίδια σειρά. Η τιμή NaN στην πρώτη σειρά, ωστόσο, παραμένει η ίδια, επειδή είναι η τελευταία τιμή σε αυτή τη σειρά:
A B C
0 1.0 1.0 1.0
1 2.0 2.0 NaN
2 3.0 3.0 3.0
3 4.0 4.0 4.0